Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 仅当选择了某个段时才启用滑动删除_Ios_Objective C_Uitableview_Edit_Swipe - Fatal编程技术网

Ios 仅当选择了某个段时才启用滑动删除

Ios 仅当选择了某个段时才启用滑动删除,ios,objective-c,uitableview,edit,swipe,Ios,Objective C,Uitableview,Edit,Swipe,我只希望在segmentedcontrol.segmentindex==7时显示单元格 使用下面的代码,默认情况下,无论选定的段是什么,每个单元格都是“滑动删除” 我有一个if语句来检查所选的段,但它似乎没有改变结果 我也尝试过在启用编辑之前检查indexpath的其他解决方案,但这些都没有成功 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingSty

我只希望在segmentedcontrol.segmentindex==7时显示单元格

使用下面的代码,默认情况下,无论选定的段是什么,每个单元格都是“滑动删除”

我有一个if语句来检查所选的段,但它似乎没有改变结果

我也尝试过在启用编辑之前检查indexpath的其他解决方案,但这些都没有成功

- (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);
    }
}
这个怎么样

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(segmentedControl.selectedSegmentIndex == 7)
        return YES;
    else
        return NO;
}

将我的评论更改为回答:

您可能希望使用
UITableViewDataSource
-(BOOL)tableView:(UITableView*)tableView canEditRowAtIndexPath:(nsindepath*)indepath
函数。下面的实现可能是您所需要的全部(前提是没有比您提供的更复杂的逻辑)

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPat {
    return _segmentedControl.selectedSegmentIndex == 7;
}

我相信您希望使用
UITableViewDataSource
-(BOOL)tableView:(UITableView*)tableView canEditRowAtIndexPath:(nsindepath*)indepath
函数来代替。实现可能非常简单,如
返回分段控件。selectedSegmentIndex==7;
我现在就试试看