无法将 'UITableViewCell' 类型的值转换为 Swift 中的 'NSIndexPath'

Could not cast value of type 'UITableViewCell' to 'NSIndexPath' in Swift

我在表格视图中显示数据,我在它的 TableViewCell 上添加了一个 show segue 点击我以便移动到 DetailsController 并通过点击 [=16] 传递单元格的数据=] 到参数中的另一个控制器。 这是 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 标识符是正确的。

错误:

Could not cast value of type UITableViewCell to NSIndexPath

您不能将 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)