IOS/Swift: 在 UITableView 上保存单元格选择
IOS/Swift: Save the cell selection on UITableView
我有一个主细节布局,在两个视图中都有 table 个视图。左侧面板有一个患者列表,右侧有一个文档列表,发生的事情是通过更改患者选择文档将被重新加载,如果用户单击文档,它将转至 webView 以显示 PDF 。
为了保持一致性,我使用以下代码
默认选择了患者 table 中的第一个单元格
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
let rowToSelect:NSIndexPath = NSIndexPath(forRow: 0, inSection: 0);
self.tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None)
self.performSegueWithIdentifier("showDetail", sender: self)
}
工作还好吧?,是的,但从这里开始有点不一致,关闭此 PDF 文档后(通过单击导航上的完成),我之前选择的单元格将关闭,它再次指向第一个患者。有什么办法可以保存这个选择吗?哦,甚至还要在详细信息页面上保存选择。谢谢
创建 NSIndexPath
属性。
将您的 viewDidAppear 更改为仅默认 -select 第一个单元格,如果之前没有内容的话 selected:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
if (!self.rowToSelect) {
rowToSelect = NSIndexPath(forRow: 0, inSection: 0);
self.tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None)
self.performSegueWithIdentifier("showDetail", sender: self)
}
}
在 didSelectRow
委托方法中,将 selected 索引路径存储在 self.rowToSelect
。
我有一个主细节布局,在两个视图中都有 table 个视图。左侧面板有一个患者列表,右侧有一个文档列表,发生的事情是通过更改患者选择文档将被重新加载,如果用户单击文档,它将转至 webView 以显示 PDF 。
为了保持一致性,我使用以下代码
默认选择了患者 table 中的第一个单元格override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
let rowToSelect:NSIndexPath = NSIndexPath(forRow: 0, inSection: 0);
self.tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None)
self.performSegueWithIdentifier("showDetail", sender: self)
}
工作还好吧?,是的,但从这里开始有点不一致,关闭此 PDF 文档后(通过单击导航上的完成),我之前选择的单元格将关闭,它再次指向第一个患者。有什么办法可以保存这个选择吗?哦,甚至还要在详细信息页面上保存选择。谢谢
创建 NSIndexPath
属性。
将您的 viewDidAppear 更改为仅默认 -select 第一个单元格,如果之前没有内容的话 selected:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
if (!self.rowToSelect) {
rowToSelect = NSIndexPath(forRow: 0, inSection: 0);
self.tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None)
self.performSegueWithIdentifier("showDetail", sender: self)
}
}
在 didSelectRow
委托方法中,将 selected 索引路径存储在 self.rowToSelect
。