ios - 无法在 Swift 中将“UITableViewCell”类型的值转换为“NSIndexPath”
问题描述
我在表格视图中显示数据,并在其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
解决方案
您不能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)
推荐阅读
- python-3.x - 出错后 Python 控制台中的三个点
- php - 基于数组键求和的多维数组
- concurrency - ejabberd:并行处理具有不同命名空间的多个数据包
- javascript - 快速检测互联网客户端的websocket丢失
- amazon-web-services - AWS CLI 列出 S3 存储桶中的所有文件
- java - 每当我运行我的测试用例时获取 java.net.ConnectException
- google-sheets - Google-Sheet - 查询多个未知工作表?
- css - Flexbox 或@media
- ios - 在 webview 中打开链接,在应用程序消息中使用 firebase
- angularjs - 当我没有安装办公室时,ng2-file-upload 不起作用