gpt4 book ai didi

swift - navigationController 在 swift 中为 nil

转载 作者:搜寻专家 更新时间:2023-10-30 23:06:09 25 4
gpt4 key购买 nike

我有两个 Storyboard(Main 和 SB2)

我在 Main 的 Storyboard中有一个 View Controller ,在 SB2 中有一个我执行

let SB2 = UIStoryboard(name: "SB2", bundle:nil)
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2")
self.showViewController(vc, sender: self)

在加载第二个 View Controller 并运行此命令后,它会打印 nil:

print(self.navigationController) // prints nil

在 SB2(第二个 Storyboard)中,我点击了 View Controller (VC2),然后点击了编辑器 > 嵌入 > 导航 Controller 。这放置了一个带有 Storyboard的导航 Controller , Root View Controller 是 VC2。我三重检查了这个。它被连接的第一个标志是顶部的灰色导航栏。第二个是将导航 Controller 连接到 VC2 的 segue,我可以检查的最后一个地方是在导航 Controller 实用程序中。

我在想,也许我不应该直接从 VC1 过渡到 VC2,而是应该从 VC1 过渡到 NavigationController,但是我不知道该怎么做,或者它是否可能。

我不知道当 sb2 连接到导航 Controller 时,它何时打印 nil。感谢您的帮助。

最佳答案

您需要将 View Controller (VC2) 推送到导航 Controller 上。

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)

然后在你的 View Controller 中尝试调用

self.navigationController

关于swift - navigationController 在 swift 中为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com