我只想在segmentedcontrol.segmentindex == 7时显示单元格。
使用以下代码,无论选择的段是什么,每个单元格都是"刷卡可删除"默认情况下。
我有一个if语句来检查所选的段,但它似乎没有改变结果。
我还尝试过在启用编辑之前检查索引路径的其他解决方案,但没有任何好运。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
editingStyle = UITableViewCellEditingStyleNone;
if(!_segmentedControl.selectedSegmentIndex == 7){
NSLog(@"%ld",(long)_segmentedControl.selectedSegmentIndex);
editingStyle = UITableViewCellEditingStyleNone;
}
if (editingStyle == UITableViewCellEditingStyleDelete) {
_MyTeamArray = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"myTeam"]];
[_MyTeamArray removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
NSLog(@" Pre-remove %@",_MyTeamArray);
[[NSUserDefaults standardUserDefaults] setObject:_MyTeamArray forKey:@"myTeam"];
} else {
NSLog(@"Unhandled editing style! %ld", editingStyle);
}
}
答案 0 :(得分:0)
这个怎么样?
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
if(segmentedControl.selectedSegmentIndex == 7)
return YES;
else
return NO;
}
答案 1 :(得分:0)
将我的评论更改为答案:
您可能希望使用- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
的{{1}}功能。您可能只需要以下实现(前提是没有比您提供的更复杂的逻辑。
UITableViewDataSource