允许只按一次表格单元格

时间:2013-09-30 19:41:11

标签: ios uitableview didselectrowatindexpath

在我的iOS应用中,我遇到了在某些操作完成之前能够多次选择表格单元格的问题。

我的情况是我让用户键入一个值,然后点击提交。在尝试完全测试我的代码时,我注意到在我的活动指示器显示之前可以多次按下提交。这导致多次提交。

我如何解决这个问题呢?任何建议都会很棒。感谢。

2 个答案:

答案 0 :(得分:2)

tableView:didSelectRowAtIndexPath:中,您可以禁用整个视图的用户交互(包括所有UITableViewCells):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self.view setUserInteractionEnabled:NO];
}

然后,无论您在何处处理操作,请重新启用视图:

-(void)yourOperationIsFinished{
    [self.view setUserInteractionEnabled:YES];
}

答案 1 :(得分:0)

您可以使用一个标志来指示该单元格是否至少被选中一次,最初是NO。选择表视图单元后,将调用方法tableView:didSelectRowAtIndexPath:。在此方法中,您可以将标记设置为YES 如果您还实现了在tableView:willSelectRowAtIndexPath:之前调用的方法tableView:didSelectRowAtIndexPath:,只要您的标记为indexPath或{{1},您就可以返回提交的NO在第一次调用nil之后。在这种情况下,将不再选择单元格。