首页 > 解决方案 > 在另一个 Viewcontroller 中获取 UITableview 的当前 indexPath

问题描述

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

我做了以下事情来做到这一点

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

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

`destination1.rownum = row` 

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

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

同样它只显示以前的值

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

标签: iosswiftuitableviewviewcontroller

解决方案


您不需要额外的变量。

  • 如果 segue 的来源是单元格,则单元格会在参数中传递,sender您将获得索引路径

    let indexPath = tableView.indexPath(for: sender as! UITableViewCell)!
    
  • 如果 segue的来源是控制器并且您自己调用传入参数performSegue。然后获取索引路径didSelectRowindexPathsenderprepare(for

    let indexPath = sender as! IndexPath
    

如果只有一个 segue 力展开这些值是好的,因为 segue 是hard-connected。如果有多个 segue,您最好安全地打开sender.


推荐阅读