如何确保 didSelectRowAtIndexPath 打开正确的视图
Posted
技术标签:
【中文标题】如何确保 didSelectRowAtIndexPath 打开正确的视图【英文标题】:How to ensure didSelectRowAtIndexPath opens correct View 【发布时间】: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)
【问题讨论】:
【参考方案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?用户创建帖子-> 当另一个用户点击它时,下一个视图需要显示原始帖子中的正确信息。这有意义吗?以上是关于如何确保 didSelectRowAtIndexPath 打开正确的视图的主要内容,如果未能解决你的问题,请参考以下文章
Swift - Alamofire Post,如果为真则更改图像