以编程方式切换到TableViewCell上的导航视图,然后在Swift中单击

问题描述 投票:0回答:4

我能够创建一个iOS应用程序,您可以在其中使用按钮在视图之间切换。这些视图具有导航控制器,因此您可以返回。

但是我想对此稍作调整。

相反,我希望一个视图没有导航控制器。然后,当单击表视图中的单元格时,我想导航到具有导航控制器的下一个视图。

我可以使用界面生成器中的segue来实现此目的,但是我不想通过生成器来管理它。这是因为我只想对表格视图中单击的单元格进行一些检查后再转到下一个视图。

所以基本上我需要以编程方式更改视图。

这是我到目前为止所做的:

  • 我有一个普通的View Controller。
  • 然后我旁边有一个导航控制器,此后将其链接到新的View Controller。
  • 我给此视图提供了预置控制器的情节提要ID。

然后我在表格单元格的onclick函数中具有以下代码:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

let nextViewController = storyBoard.instantiateViewController(withIdentifier: "presetController") as! PresetNavigationController
        self.present(nextViewController, animated:true, completion:nil)

现在此代码将我带到下一个视图,但未加载导航控制器。

如何使导航控制器链接到该视图?它已经通过编辑器选项卡链接嵌入到其中。

用于解释故事板的照片:

StoryBoard

ios swift uiviewcontroller uinavigationcontroller
4个回答
0
投票

您需要将View Controller与Navigation Controller交换,然后执行以下代码:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

let nextViewController = storyBoard.instantiateViewController(withIdentifier: "presetController") as! PresetNavigationController
        self.present(nextViewController, animated:true, completion:nil)

这将使您的导航栏后退按钮出现


0
投票

如果您的链接导航控制器来自New controller且您正在打开presntview控制器,则将像这样创建>

  let nextViewController = storyBoard.instantiateViewController(withIdentifier: "presetController") as! PresetNavigationController

  let navController = UINavigationController(rootViewController: nextViewController)

  self.present(navController, animated:true, completion: nil)

0
投票

使用来自ppinho的建议,我将导航控制器作为入口点。


0
投票

这里是

© www.soinside.com 2019 - 2024. All rights reserved.