在另一个 Viewcontroller 中获取 UITableview 的当前 indexPath

getting the current indexPath of UITableview in another Viewcontroller

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

我已经完成了以下操作

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

2.Destination 有另一个变量 rownum 并且它被分配为

`destination1.rownum = row` 

prepare(for segue: UIStoryboardSegue, sender: Any?) 方法

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

同样它只显示以前的值

加载完所有这些值后,如何重置此 rownum/ 行?

您不需要额外的变量。

  • 如果 segue 的起点是 cell 则单元格将传入 sender 参数,您将获得索引路径

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

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

如果只有一个 segue 力解包值就没问题,因为 segue 是 硬连接。如果有多个 segues 你最好安全地打开 sender.