2016-03-25 32 views
0

başlatılırken istem dışı çökmeler için hazırlanıyor prepareForSegue() yönteminde aldığım hata iletisini bulmaya çalışıyorum. Bu yöntemde kullandığım kod, Xcode'daki varsayılan Ana Varsayılan şablonundakiyle aynıdır.Denetleyici

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

aşağıdaki hata ile:

Ama benim durumumda

, bu hat uygulaması çöktü ben var summaryViewController: SummaryViewController? = nil ile üst hedef görünümü denetleyicisi ilan ettiler

fatal error: unexpectedly found nil while unwrapping an Optional value 

ve ben var Geçerli görünüm denetleyicisinden SummaryViewController ve bu tableView:didSelectRowAtIndexPath yöntemine başvurma yöntemi:

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

Ayrıca doğrudan tablo görünümü hücresinden bir segue ile denedim (ve bu yöntemi kaldırarak), ancak yine de çöker.

Herhangi bir fikrim yanlış yaptığım şey nedir?

cevap

1

Sen nedenle prepareForSegue aşağıdaki gibi olmalı VC yoktur ya da değil kontrol etmek gerekir:

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

Teşekkür! Şu anda Swift'i öğrenmeye çalışıyorum ve hepsi! ve ? beni atıyor .. :-) –

+1

? araç, Nil'de değer olabilir ve! –

+0

nol değeri olmalıdır. :) –