我有一个允许多项选择的tableview。返回tableView时,我想清除之前的所有选择。以下代码仅清除第一个选定的单元格。我怎样才能清除所有细胞?
override func viewWillAppear(animated: Bool) {
if (self.tableView.indexPathForSelectedRow() != nil) {
self.tableView.deselectRowAtIndexPath(self.tableView.indexPathForSelectedRow()!, animated: true)
}
}
答案 0 :(得分:2)
您应该使用indexPathsForSelectedRows()
代替。
override func viewWillAppear(animated: Bool) {
if let selectedRows = tableView.indexPathsForSelectedRows() {
for indexPath in selectedRows {
tableView.deselectRowAtIndexPath(indexPath as NSIndexPath, animated: true)
}
}
}
或者,如果您使用的是UITableViewController
,则可以将名为clearsSelectionOnViewWillAppear
的属性设置为True
(如@swiftshokunin所说)。
参考文献:
答案 1 :(得分:1)
UITableViewController有一个属性:
clearsSelectionOnViewWillAppear