didDeselectRowAtIndexPath indexPath为nil

时间:2016-04-26 20:27:04

标签: swift tableview nsindexpath

我有一个实现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相同的表格,我可以选择,取消选择,并滚动就好了。

0 个答案:

没有答案