ユーザーが UITableViewCell を削除することを決定したときに表示される 2 番目の確認ダイアログがあります。通常の状態のテーブルビューは次のとおりです。
そして、テーブル全体が編集モードになったときは次のようになります。
ユーザーが左側の赤いマイナス記号の 1 つをタップすると、セルは削除確認モードになります。
ユーザーが表示されたばかりの削除ボタンをタップすると、次のアクション シートが表示されます。
ここで問題が発生します。ユーザーがマップを削除することを確認した場合、すべて問題ありません。ただし、キャンセル ボタンを押すと、アクション シートは消えますが、テーブル ビューは次のようになります。
問題は、削除確認ボタンが選択された状態ではなくなり、ビューから非表示になっていることです。ご覧のとおり、そうではありません。ドキュメントの検索は結果なしで終了しました。setEditing:NO
テーブルを通常の編集状態のままにしたいので、したくありません。何か案は?
編集1:これが内部で起こっていることですtableView:commitEditingStyle:forRowAtIndexPath:
- (void)tableView:(UITableView*)tableView commitEditingStyle:
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath {
NSInteger finalIndex = [self getFinalIndexForIndexPath:indexPath];
NSString* mapTitle = ((PreviewDataObject*)[[[SingletonDataController sharedSingleton]
getImportedOrSavedMapPreviews:masterIdentifierString]
objectAtIndex:finalIndex]).titleString;
UIActionSheetWithIndexPath* sheet = [[UIActionSheetWithIndexPath alloc] initWithTitle:
[NSString stringWithFormat:@"Are you sure you want to delete the map '%@'?",
mapTitle] delegate:self cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Delete Map" otherButtonTitles:nil];
sheet.indexPath = indexPath;
[sheet showFromTabBar:[AppDelegate appDelegate].tabBarController.tabBar];
[sheet release];
}