在我的表视图控制器的prepare segue函数中,我似乎收到了索引Path的错误。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "showView"){
let detailVC: DetailViewController = segue.destinationViewController as! DetailViewController
let indexPath = self.MainTableView.indexPathForSelectedRow!
detailVC.test_label.text = names[indexPath.row]
self.MainTableView.deselectRowAtIndexPath(indexPath, animated:
}
}
对于indexPath.row,它显示“BAD_INSTRUCTION”。当我删除索引names数组的行时,它会在上面的行(indexPath定义行)上抛出BAD INSTRUCTION错误。当我改变了!在indexPathForSelectedRow to()之后,它显示“Not a function”。我无法弄清楚如何为所选行获取正确的索引路径!有谁知道发生了什么?
- 控制台中的错误是: 致命错误:在解包可选值时意外发现nil
答案 0 :(得分:0)
在let indexPath = ...
行放置一个断点。查看MainTableView
对象是否为零,因为您可能会崩溃,因为它是强制展开nil对象。如果为nil,请检查与storyboard / xib文件的连接。
答案 1 :(得分:0)
Here please find this code. This should work fine.
或改变!至 ?在你的代码中。 //让indexPath = self.MainTableView.indexPathForSelectedRow?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if(segue.identifier == "showView")
{
let detailVC = segue.destinationViewController as! ViewController2
let path = tableView.indexPathForSelectedRow?.row
detailVC.test_label.text = names[path]
}
}