【问题标题】:IOS/Swift: Save the cell selection on UITableViewIOS/Swift:在 UITableView 上保存单元格选择
【发布时间】:2015-05-31 03:49:33
【问题描述】:

我有一个主细节布局,两个视图中都有表格视图。左侧面板有患者列表,右侧面板有文档列表,通过更改患者选择文档将重新加载,如果用户单击文档,它将转到 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 文档后(通过单击导航完成),我先前选择的单元格将熄灭,它再次指向第一个患者。有没有办法保存这个选择?哦,甚至还保存在详细信息页面上的选择。谢谢。

【问题讨论】:

  • 也许我误解了你的问题,但不会将 indexPath 存储在委托 method tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 的实例变量中吗?
  • @LevLandau 你能看看我的其他评论吗?
  • 我看到@Lord Zsolt 已经回答了您的问题。很高兴听到您的问题得到解决。

标签: ios uitableview swift selection cell


【解决方案1】:

创建一个NSIndexPath 属性。

将您的 viewDidAppear 更改为仅默认选择第一个单元格,如果之前没有选择任何内容:

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中。

【讨论】:

  • 感谢您的解决方案,当我尝试将 indexpath 分配给 rottoSelect 时,它会弹出一个错误提示 Cannot assign to 'rowToSelect' in 'self'rowToSelect = NSIndexPath(forRow: 0, inSection: 0);rowToSelect = indexPath 都会弹出相同的错误
  • 它是 var 还是 let 属性?应该是 var。
  • 我怎么能忘记这么简单的事情,谢谢。将其更改为 var 消除了错误,但现在它不会加载详细数据部分,因为 if ((self.rowToSelect) != nil) 在应用程序最初加载时评估为 false。无论如何要摆脱这个问题?
  • 我没有说!= nil,我说 == nil。 != nil 与 if (variable) 相同,!= nil 与 if (!variable) 相同。
  • 现在可以使用了,感谢您的帮助。我接受并赞成你的回答:)
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多