从 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]
}
}
在我的 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]
}
}