3

重複の可能性:
テーブルを編集モードに変更し、通常のViewController内の行を削除します

選択した行をtableViewから削除したい。ユーザーが行を滑ったり、指をフリックしたりしたときに行を削除する機能をユーザーに提供したいと思います。-ve記号が付いた円形の赤いボタンを提供する編集スタイルを知っています。

私はこのコードを試しました:

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


[tableView beginUpdates];    
if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Do whatever data deletion you need to do...
    // Delete the row from the data source
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationTop];      
}       
[tableView endUpdates];
[tableView reloadData];
}

削除ボタンが表示されますが、クリックするとSIGABRTエラーが発生します。

4

5 に答える 5

17

以下の行のように試してください:

[bookmarks removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];

ブックマークは、テーブルビューセルにロードする配列名です。これの代わりに配列名を指定する必要があります。

于 2013-01-07T06:39:26.267 に答える
3

テーブル行を削除した後、対応するインデックスdataSourceをdataSourceからtable.に削除してから、テーブルを再度リロードします。

    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
 [dataArray removeObjectAtIndex:indexPath.row];
  [tableView reloadData];
于 2013-01-07T07:04:50.570 に答える
3

コードを置き換えるだけです

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle==UITableViewCellEditingStyleDelete)
    { 
        [dataArray removeObjectAtIndex:indexPath.row];
    }


    [tableView reloadData];
}
于 2013-01-07T07:07:52.450 に答える
0

これを試して

 [tableArray removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
于 2013-01-07T06:42:42.890 に答える
0

これを試してみてください...

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES]; 
于 2013-01-07T06:45:09.063 に答える