在故事板之间保持导航控制器(swift)

Posted

技术标签:

【中文标题】在故事板之间保持导航控制器(swift)【英文标题】:Keeping navigation controller between storyboards (swift) 【发布时间】:2015-06-15 20:48:25 【问题描述】:

我正在创建一个包含多个故事板的应用。现在,我可以从第一个故事板过渡到第二个故事板,但是当我过渡到第二个故事板时,我失去了导航控制器。但是,我仍然需要导航回第一个情节提要并希望使用相同的控制器。有谁知道如何在故事板之间保留我的导航控制器?

以下是我过渡到第二个故事板的方式。 pushViewController 是我尝试添加到导航堆栈,但它不起作用。

 let destination = UIStoryboard(name: "Preferences", bundle: nil)
 let initialViewController = destination.instantiateInitialViewController() as! UIViewController
 self.navigationController?.pushViewController(initialViewController, animated: true)
 self.presentViewController(initialViewController, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

我认为你只是添加了冗余代码。 删除

self.presentViewController(initialViewController, animated: true, completion: nil)

此代码将显示不在导航容器中的视图。此代码使

self.navigationController?.pushViewController

不工作。

所以只需使用

 let destination = UIStoryboard(name: "Preferences", bundle: nil)
 let initialViewController = destination.instantiateInitialViewController() as! UIViewController
 self.navigationController?.pushViewController(initialViewController, animated: true)

【讨论】:

您对代码重复是正确的。虽然事实证明我的问题是 self.navigationController 返回 nil 因为我没有正确嵌入它。感谢您的回答!

以上是关于在故事板之间保持导航控制器(swift)的主要内容,如果未能解决你的问题,请参考以下文章

swift3中的导航问题,带有没有故事板的.xib文件

停止导航控制器swift的导航

在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?

如何从故事板中绘制的现有视图控制器构建导航控制器?

如何从“菜单”视图控制器在现有 UIViewControllers 之间导航?

如何从 xcode 故事板上的导航控制器导航回来