我正在表格视图中显示数据,并在其TableViewCell
单击I上添加了显示顺序,以便移至DetailsController
并通过单击的IndexPath
传递单元格的数据参数中的另一个控制器。
这是segue代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "toDetails", sender: indexPath)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let indexPath = sender as! IndexPath
let indice = indexPath.row as NSInteger
let nomCandidat = "candidats"
let detailsViewController = segue.destination as! DetailsViewController
detailsViewController.idtrip = 10
}
我确保segue标识符正确。
错误:
无法将类型
UITableViewCell
的值强制转换为NSIndexPath
答案 0 :(得分:2)
您不能发送indexPath
作为发件人参数。 sender:
是触发segue的UI元素,在本例中为UITableViewCell。
因此,您可以像这样在发送方中发送tableViewCell实例:
guard let cell = tableView.cellForRowAt(indexPath: indexPath) else {return}
//alternatively
//let cell = tableView.cellForRowAt(indexPath: indexPath)!
performSegue(withIdentifier: "toDetails", sender: cell)