我有一个主细节布局,两个视图中都有表视图。左侧面板有患者列表,右侧面板有文档列表,通过更改患者选择,将重新加载文档,如果用户单击文档,它将转到webView以显示PDF。
出于一致性目的,我使用以下代码默认选择了患者表中的第一个单元格
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
属性。
将你的视图更改为仅默认选择第一个单元格(如果之前没有选择):
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
委托方法中,将选定的索引路径存储在self.rowToSelect
中。