在另一个视图控制器中获取 UITableview 的当前 indexPath

问题描述

我有一个 UITableView ,当点击每个单元格时,它会加载详细信息页面,其中名称和副标题是从 tableview 单元格名称和副标题加载的。

我已经完成了以下操作

  1. 声明了一个 var 类型的行,在 didSelectRowAt 方法中,Int 被传递给这个变量

2.Destination 有另一个变量 rownum,它被赋值为

indexPath

`destination1.rownum = row` 方法

我的问题是,当我单击第一个单元格时,rownum 的值 = 0 但这保持不变,在下一个单元格单击时,这会显示第 0 个值本身。

同样它只显示以前的值

一旦加载了所有这些值,我如何重置这个 rownum/ 行?

解决方法

您不需要额外的变量。

  • 如果 segue 的来源是 cell,那么在 sender 参数中传递该单元格,您可以使用

    获得索引路径
    let indexPath = tableView.indexPath(for: sender as! UITableViewCell)!
    
  • 如果 segue 的来源是 controller 并且您在 performSegue 中调用 didSelectRow 传递 indexPath 参数中的 sender你自己。然后用

    获取prepare(for中的索引路径
    let indexPath = sender as! IndexPath
    

如果只有一个 segue 强制解开这些值就可以了,因为 segue 是硬连接。如果有多个转场,您最好安全地打开 sender

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...