2016-03-25 3 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) 
} 

しかし、私はまた、テーブルビューのセルから直接セグを試しましたが(このメソッドを削除すると)、それでもクラッシュします。

私が間違っていることは何ですか?

答えて

1

あなたはそう、あなたのprepareForSegueは次のようでなければならないVCがゼロであるかどうかを確認する必要があります。

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

感謝を!私は現在スウィフトを勉強しようとしています。そして? ..-) –

+1

?手段は無価値で来る価値であるかもしれない!値でなくてはならない022 –

+0

ありがとうNitin! :) –

関連する問題