Swift:Save&在静态表视图中显示选定的indexPath

时间:2017-06-06 05:03:50

标签: ios swift uitableview

我的静态tableview有点问题。我有一个PopOver,显示为我的网格选项。我想保存我的静态TableView的状态(indexPath),但似乎它不起作用,下面是我的代码片段:

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    var currSelected: IndexPath?

    let section = indexPath.section
    let numberOfRows = tableView.numberOfRows(inSection: section)
    for row in 0..<numberOfRows {
        if let cell = tableView.cellForRow(at: NSIndexPath(row: row, section: section) as IndexPath) {
            cell.accessoryType = row == indexPath.row ? .checkmark : .none
            tableView.deselectRow(at: indexPath, animated: false)
            currSelected = indexPath

            if section == 2 {
                tableView.deselectRow(at: indexPath, animated: false)
                cell.accessoryType = .none
            }
            else {
                delegate?.option(lastSelected: currSelected!)
                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "reload"), object: nil)

            }
        }
    }
}

我正在尝试使用delegatelastSelected(最后一个indexPath)抛给上一个控制器并将其发送回Pop Over Controller并得到它。但我不知道使用这个lastSelected显示复选标记。并且prepare for cell at函数需要重用单元格的标识符,但我不使用它。

我已阅读this以显示复选标记,但未保存状态。我也读过this,但也一样。任何建议/答案都会对我有所帮助。在此先感谢

1 个答案:

答案 0 :(得分:0)

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    if indexPath == lastSelected {
        cell.accessoryType = .Checkmark
    }
}