navigationController 在 swift 中为 nil
navigationController is nil in swift
我有两个故事板(Main 和 SB2)
我在 Main 的故事板中有一个视图控制器,在 SB2 中有一个
我执行
let SB2 = UIStoryboard(name: "SB2", bundle:nil)
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2")
self.showViewController(vc, sender: self)
在加载第二个 viewcontroller 并且此命令为 运行 后,它打印 nil:
print(self.navigationController) // prints nil
在 SB2(第二个故事板)中,我点击了 viewcontroller (VC2),然后点击了编辑器 > 嵌入 > 导航控制器。这放置了一个带有故事板的导航控制器,根视图控制器是 VC2。我三重检查了这个。它被连接的第一个标志是顶部的灰色导航栏。第二个是将导航控制器连接到 VC2 的 segue,我可以检查的最后一个地方是在导航控制器实用程序中。
我在想,也许我不应该直接从 VC1 过渡到 VC2,而是应该从 VC1 过渡到 NavigationController,但是我不知道该怎么做,甚至不知道该怎么做。
我不知道 sb2 何时在 face 导航控制器连接到它时打印 nil 。感谢任何帮助。
您需要将视图控制器 (VC2) 推到导航控制器上。
let SB2 = UIStoryboard(name: "SB2", bundle:nil)v
let nvc = SB2.instantiateViewControllerWithIdentifier("NVC") as! UINavigationController
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2")
nvc.pushViewController(vc, animated: true)
然后在你的视图控制器中尝试调用
self.navigationController
在你的故事板中,
select初始ViewController。使用此视图控制器 selected,选择菜单项
Editor -> Embed In -> Navigation Controller
我有两个故事板(Main 和 SB2)
我在 Main 的故事板中有一个视图控制器,在 SB2 中有一个 我执行
let SB2 = UIStoryboard(name: "SB2", bundle:nil)
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2")
self.showViewController(vc, sender: self)
在加载第二个 viewcontroller 并且此命令为 运行 后,它打印 nil:
print(self.navigationController) // prints nil
在 SB2(第二个故事板)中,我点击了 viewcontroller (VC2),然后点击了编辑器 > 嵌入 > 导航控制器。这放置了一个带有故事板的导航控制器,根视图控制器是 VC2。我三重检查了这个。它被连接的第一个标志是顶部的灰色导航栏。第二个是将导航控制器连接到 VC2 的 segue,我可以检查的最后一个地方是在导航控制器实用程序中。
我在想,也许我不应该直接从 VC1 过渡到 VC2,而是应该从 VC1 过渡到 NavigationController,但是我不知道该怎么做,甚至不知道该怎么做。
我不知道 sb2 何时在 face 导航控制器连接到它时打印 nil 。感谢任何帮助。
您需要将视图控制器 (VC2) 推到导航控制器上。
let SB2 = UIStoryboard(name: "SB2", bundle:nil)v
let nvc = SB2.instantiateViewControllerWithIdentifier("NVC") as! UINavigationController
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2")
nvc.pushViewController(vc, animated: true)
然后在你的视图控制器中尝试调用
self.navigationController
在你的故事板中, select初始ViewController。使用此视图控制器 selected,选择菜单项
Editor -> Embed In -> Navigation Controller