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