准备segue到导航控制器时获得nil

时间:2015-01-25 02:15:39

标签: xcode swift segue uistoryboardsegue

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

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

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还没有实例化,因为它现在已经深入了两层。但如果是这样的话,我不知道为什么它似乎在为其他人工作。

1 个答案:

答案 0 :(得分:2)

  

我有一个与导航控制器相对应的表视图,然后将其转移到我自己的自定义视图控制器

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

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

  2. 控制 -drag从导航控制器到详细视图控制器,然后从弹出窗口中选择根视图控制器

  3. 现在navView.topViewController将是非零的。