1

我有导航栏,我在其上设置了一个默认编辑按钮,它可以让我删除表格项目。但是,当我的表为空时,它仍将按钮的状态保持为“完成”并且不会返回“编辑”我的代码在这里,在 viewDidLoad

 self.navigationItem.leftBarButtonItem = self.editButtonItem;
 //My Editing method 
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
 { 
    if([userInfoArr count]!=0)
    {
        [super setEditing:editing animated:animated];
        [self.tableView setEditing:editing animated:YES]; 
    }
 }
4

4 回答 4

2

您可以在tableView:commitEditingStyle:forRowAtIndexPath:方法中执行此操作,如下所示:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Do the deletion...
    }

    // If the array is empty, turn off edit mode
    if ([userInfoArr count] < 1) {
        [super setEditing:NO animated:NO];
        [tableView setEditing:NO animated:NO]; 
    }
}
于 2013-05-24T07:24:34.400 回答
1

然后你删除最后一个表项只是调用

[self.tableView setEditing:NO animated:YES];

在非编辑模式下设置表格视图。

也许您需要调用[super setEditing:NO animated:YES];以将按钮设置为“编辑”状态

于 2013-05-24T07:16:55.443 回答
1

真棒它的工作原理..!我不得不把它放在我的 numberOfRowsInSection 中,- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if(userInfoArr.count==0) { [self.tableView setEditing:NO animated:YES]; [super setEditing:NO animated:YES]; } return userInfoArr.count; }

于 2013-05-24T11:46:46.767 回答
0

我也遇到了这个问题。我解决了这个我的小技巧

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

检查数据源是否为空。将编辑设置为NO

 [self.tableView setEditing:NO animated:YES];
 [self setEditing:NO];
于 2013-05-24T07:33:14.147 回答