以编程方式打开视图控制器并且看不到导航栏。斯威夫特 3

Posted

技术标签:

【中文标题】以编程方式打开视图控制器并且看不到导航栏。斯威夫特 3【英文标题】:Open view controller programatically and dont see navigation bar. Swift 3 【发布时间】:2017-06-06 19:52:51 【问题描述】:

在我的故事板上,我在导航控制器中嵌入了一个集合视图控制器。现在从集合视图的单元格中,我以编程方式打开第二个视图控制器(称为 TwoPicsViewController),如下所示:

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

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


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

但是,当我的 TwoPicsViewController 打开时,我根本看不到导航栏。在故事板上,我将 TwoPicsViewController 连接到第一个带有 segue 显示的视图控制器。

我还错过了什么吗?

谢谢

【问题讨论】:

【参考方案1】:

要将新的UIViewController 推送到导航堆栈,您应该使用:

self.navigationController?.pushViewController(nextViewController, animated: true)

代替:

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

【讨论】:

【参考方案2】:

您没有将新的 vc 放在导航堆栈上,试试这个:

performSegue(withIdentifier: "Segue Name", sender: nil)

在 Storyboard 上选择 Segue,属性检查器,标识符 = "Segue Name"

【讨论】:

以上是关于以编程方式打开视图控制器并且看不到导航栏。斯威夫特 3的主要内容,如果未能解决你的问题,请参考以下文章

当以编程方式设置根视图控制器时,导航和标签栏丢失

以编程方式导航到另一个故事板上的导航控制器和标签栏控制器内的视图控制器

导航栏在 iPhone XS Max swift 上关闭视图控制器上的视图

以编程方式创建的后退按钮未显示在导航栏中?

Swift iOS以编程方式在导航栏下方设置scrollView约束

以编程方式在点击时选择的 UITabBar 视图