我有一个实现TableViewDelegate方法的TableViewController:
public override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! ParticipantesSearchTableViewCell
cell.viewModel?.active = true
}
public override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! ParticipantesSearchTableViewCell
cell.selectedStateImageView.hidden = true
cell.viewModel?.active = false
}
请注意,我从不删除或将tableView.editing设置为true。此外,我的numberOfRowsInSection
方法永远不会改变。
如果我将tableView设置为tableView.allowsSingleSelection = true
,我可以选择并取消选择单元格,并且上述方法按照预期方式激活。但是,当我滚动我的tableView并选择一个新单元格时,方法didDeselectRowAtIndexPath在let cell = tableView.cellForRowAtIndexPath(indexPath) as! ParticipantesSearchTableViewCell
上崩溃
此时我调试tableView.indexPathForSelectedRow
并返回nil。
知道我在这里实施的错误或者这是一个错误吗?因为我尝试使用与tableView.allowsMultipleSelection = true
相同的表格,我可以选择,取消选择,并滚动就好了。