准备转至导航控制器时获取 nil

Getting nil when preparing for segue to navigation controller

我发现了关于同一主题的其他一些问题,所以从技术上讲,这是一个转贴,但是那里提供的解决方案对我没有任何帮助。已建议的解决方案似乎适用于其他用户,但已存在于我的代码中。

这是导致我出现问题的代码。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    let navView = segue.destinationViewController as UINavigationController
    let destinationView = navView.topViewController as DetailViewController

这是我得到的错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

在我访问navView.topViewController的地方报错。

我有一个 table 视图转至导航控制器,然后导航控制器转至我自己的自定义视图控制器。我想将数据从 table 视图传递到我的自定义视图控制器。

今天早些时候我让它运行良好,然后在两者之间添加导航控制器,将数据直接从 table 视图传递到导航控制器。在两者之间添加导航控制器有问题。

对于我遇到此问题的原因有什么建议吗?我唯一能想到的是 DetailViewController 还没有实例化,因为它现在有两层深。但如果是这样的话,我不知道为什么它似乎对其他人有效。

I have a table view segueing to a navigation controller, which then segues to my own custom view controller under it.

我相信这是你的问题。从 Navigation Controller 到 Detail View Controller 的连接不是正常的 segue。应该是关系转折。

  1. 单击导航控制器和详细视图控制器之间的连接。按删除.

  2. Control-从 Navigation Controller 拖动到 Detail View Controller 和 select root view controller 从弹出窗口中。

现在 navView.topViewController 将非零。