【问题标题】:How to ensure didSelectRowAtIndexPath opens correct View如何确保 didSelectRowAtIndexPath 打开正确的视图
【发布时间】:2015-08-25 03:27:48
【问题描述】:

我知道在用户选择一个单元格后如何将他们发送到一个新单元格,但是如果我的单元格的顺序发生变化,因为我正在从 Parse 检索数据,因此对于每个新单元格,行号都会发生变化。

当用户选择某个单元格时,如何确保将用户发送到正确的页面?这是我目前正在使用的,但我知道必须有比硬编码每个可能的选项更好的解决方案..

有什么建议吗?

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    if indexPath.section == 0 && indexPath.row == 1 {
        self.performSegueWithIdentifier("toSettingsPage", sender: self)
    }
}

【问题讨论】:

    标签: ios swift uitableview parse-platform didselectrowatindexpath


    【解决方案1】:

    为了我理解您的问题,我建议您使用NSMutableDictionary 来存储所有用户信息数据,并在didSelectRowAtIndexPath 功能上,您将使用indexPath 找到正确的用户信息。

    【讨论】:

      【解决方案2】:

      您的意见:

      • 表格视图
      • 一个索引路径(节、行)有序对

      你的输出:

      • 标识转场的字符串

      一个理想的数据结构是字典。

      首先,请注意表格视图输入始终是相同的(您似乎只关心一个表格视图 - 数据源协议被编写为处理任意数量的表格视图,但大多数人使用一对一)。

      其次,考虑您的键和值:您的键是索引路径。事实上,索引路径分解为一个Integer,因为它总是相同的部分,这类似于上面描述的表格视图的情况。

      所以你的字典的类型是:Dictionary<Integer, String>

      现在,我们不直接使用字典,而是创建一个函数来包装它并调用函数segueForIndexPathInDefaultTableView

      private let seguesForIndexPaths:[Integer:String] = [0:"segue0",1:"segue1",2:"segue2"]
      
      private func segueForIndexPathInDefaultTableView(indexPath: NSIndexPath) {
          return self.seguesForIndexPaths[indexPath.row]
      }
      
      func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {      
          self.performSegueWithIdentifier(self.segueForIndexPathInDefaultTableView(indexPath: indexPath), sender:self)
      }
      

      【讨论】:

      • 既然用户是创建帖子的人,我该如何创建segue?用户创建帖子-> 当另一个用户点击它时,下一个视图需要显示原始帖子中的正确信息。这有意义吗?
      猜你喜欢
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多