2015-01-16 101 views
3
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if segue.identifier == "showLocalMenuDetail" { 
     if let indexPath = self.tableView.indexPathForSelectedRow() { 
      self.slideMenuController()?.closeLeft() 
      let destinationController = segue.destinationViewController as DetailViewController 
      destinationController.localMenuImage = self.locals[indexPath.row].image 
      destinationController.localMenuTitle = self.locals[indexPath.row].title 

    } } 
} 

我得到了錯誤在此「self.tableView.indexPathForSelectedRow()」我使用滑出導航面板如Facebook導航到其他視圖控制器在左側菜單中使用segue和嵌入式導航控制器。致命錯誤:意外地發現零而展開的可選值(LLDB)

我不知道它有什麼問題,請幫忙!

+0

你能確定它究竟崩潰了嗎?從代碼它必須self.slideMenuController()?closeLeft() - 這意味着可選slideMenuController不存在 – Volker

+0

我使用這個lib https://github.com/dekatotoro/SlideMenuControllerSwift,我添加表格單元格我的左滑動菜單。當我點擊其中一個時,出現該錯誤。 –

回答

4

當您嘗試訪問聲明爲'Implicitly Unwrapped Optional'(即聲明爲!)但該變量未綁定(綁定到nil)的變量的值時,會出現此類錯誤。

在你的情況,發生崩潰,因爲在UITableViewControllertableView屬性定義爲:

var tableView: UITableView! 

這是一個隱含展開可選。如果它被解約,崩潰。

您還沒有將Xcode Interface Builder中的tableView綁定到您的UITableViewController。在Xcode中,如果你在'Connections Inspector'中查看你的控制器,你會在'Outlets'下找到'view'沒有被綁定。因此,表達式self.tableView將產生運行時崩潰。

+1

謝謝先生,我解決了你的問題。 –

相關問題