从 prepareForSegue 访问 Table 视图 IndexPath

Accessing a Table View IndexPath from prepareForSegue

在我的 table 视图控制器的 prepare segue 函数中,我似乎遇到了索引路径错误。

 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"。当我删除索引名称数组的行时,它会在上面的行(indexPath 定义行)上抛出 BAD INSTRUCTION 错误。当我改变!在 indexPathForSelectedRow 到 () 之后,它说 "Not a function" 。我无法弄清楚如何为所选行获取正确的索引路径!有人知道发生了什么事吗?

-- 控制台中的错误是: 致命错误:在展开可选值

时意外发现 nil

let indexPath = ... 行放置一个断点。查看 MainTableView 对象是否为 nil,因为您可能会崩溃,因为它会强制解包 nil 对象。如果为零,请检查您与故事板/xib 文件的连接。

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]
     }
}