1

テーブル項目を削除できるデフォルトの編集ボタンを設定したナビゲーション バーがあります。ただし、テーブルが空の場合でも、ボタンの状態を「完了」として維持し、「編集」に戻ることはありません。私のコードはここにあります。

 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 に答える
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 に答える