无法将类型“ UITableViewCell”的值转换为“ NSIndexPath”

时间:2019-12-24 23:50:35

标签: swift

我收到此错误:

  

无法将类型“ UITableViewCell”的值转换为“ NSIndexPath”

下面是我的代码

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "ToProfile2", sender: indexPath)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ToProfile2" {
        let index = sender as! NSIndexPath
        print(index)
    }
}

2 个答案:

答案 0 :(得分:1)

您已经接近,但是indexPath不是发件人,您选择的单元格应该是发件人。试试:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "ToProfile2", sender: self)
}

如果您要为刚刚选择的单元格标识indexPath,下面将为您提供

tableView.indexPathForSelectedRow

答案 1 :(得分:0)

如果segue的起源是表格视图单元格,则会发生错误。

有两种选择:

  1. 删除didSelect,将sender参数强制转换为UITableViewCell,然后调用tableview.indexPath(for:以获取索引路径。
  2. 在Interface Builder中,删除序列并从控制器开始重新创建