我的静态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)
}
}
}
}
我正在尝试使用delegate
将lastSelected
(最后一个indexPath)抛给上一个控制器并将其发送回Pop Over Controller并得到它。但我不知道使用这个lastSelected显示复选标记。并且prepare for cell at
函数需要重用单元格的标识符,但我不使用它。
答案 0 :(得分:0)
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if indexPath == lastSelected {
cell.accessoryType = .Checkmark
}
}