【发布时间】:2018-09-16 08:26:29
【问题描述】:
我想根据选择的行将不同的数组从一个 ViewController 传递到另一个。
如何获取所选行的索引?
我试过这个,但它不起作用:
let toDetailVCSegue = "ToDetailVCSegue"
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: toDetailVCSegue, sender: indexPath)
}
func prepare(for segue: UIStoryboardSegue, sender: IndexPath?)
{
if segue.identifier == toDetailVCSegue
{
let destination = segue.destination as! DetailViewController
if let indexPath = tableView.indexPathForSelectedRow{
if indexPath.row == 0 {
destination.itemArray = namesArray
print("test")
}
if indexPath.row == 1 {
destination.itemArray = scoresArray
}
if indexPath.row == 2 {
destination.itemArray = timesArray
}
if indexPath.row == 3 {
destination.itemArray = completedArray
}
}
}
}
【问题讨论】:
-
如果您在
didSelectRowAt中所做的只是传递选定的行,那么您根本不需要它。只需使用let indexPath = tableView.indexPathForSelectedRow获取prepare(for:sender:)中的选定行。这是一个可选的,所以以通常的方式安全地打开它。
标签: swift uitableview segue