准备到导航控制器时为 nil



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

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

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的错误上抛出的。

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

在添加导航控制器

之前,我今天早些时候让它工作正常,将数据直接从表视图传递到导航控制器。在两者之间添加导航控制器已经破坏了事情。

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

我有一个表视图连接到导航控制器,然后导航控制器连接到我自己的自定义视图控制器

我相信这是你的问题。 从导航控制器到详细信息视图控制器的连接不是正常的 segue。 它应该是一个关系Segue。

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

  2. 按住 Control 键从导航控制器拖动到详细信息视图控制器,然后从弹出窗口中选择根视图控制器

现在navView.topViewController将是非零的。

最新更新