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()"上得到了错误。我正在使用滑出式导航面板导航到其他视图控制器,例如使用 segue 的 facebook 和左侧菜单上的嵌入式导航控制器。
不知道怎么了,请帮忙!
当您尝试访问声明为"隐式解包可选"(即用 !
声明)的变量的值,但当该变量未绑定(绑定到 nil
)时,会发生此类错误。
在您的情况下,发生崩溃是因为在UITableViewController
中tableView
属性定义为:
var tableView: UITableView!
它是一个隐式解包的可选选项。 如果它未绑定,则崩溃。
您尚未将 Xcode 界面构建器中的tableView
绑定到您的UITableViewController
。 在 Xcode 中,如果您在"连接检查器"中查看控制器,您会发现在"插座"下"视图"未绑定。 因此,表达式 self.tableView
将产生运行时崩溃。