2016-03-25 29 views
0

我正在努力弄清我在prepareForSegue()方法中得到的错误消息。我在这种方法中使用的代码与Xcode中默认的Master-Default模板相同。实例化控制器时准备发生崩溃崩溃

但在我的情况下,该行坠毁的应用:

let controller = (segue.destinationViewController as! UINavigationController).topViewController as! SummaryViewController 

,出现以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value 

我已经宣布与var summaryViewController: SummaryViewController? = nil顶部的目的地视图控制器,我有从当前视图控制器延续至SummaryViewController,并且此tableView:didSelectRowAtIndexPath方法:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    performSegueWithIdentifier("showSummary", sender: self) 
} 

但我也尝试过直接从tableview单元格(和删除这个方法),但它仍然崩溃。

任何想法我做错了什么?

回答

1

您需要检查VC为零或不那么你prepareForSegue必须像以下:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "showSummary" 
     { 
      if let controller = (segue.destinationViewController as? UINavigationController)!.topViewController as? SummaryViewController 
      { 
       // write a the code for SummaryViewController 
      } 
     } 
    } 
+0

谢谢!我目前正在努力学习Swift和所有的!和?正在把我抛下.. :-) –

+1

?意味着价值可能会在零和!必须是价值不为零 –

+0

谢谢尼廷! :) –