0

編集がtrueの場合に、その行のデータを編集するために別のビュー(View1)に変更したいTableViewがあります。編集が正しくない場合は、didSelectRowAtIndexPathを使用して、選択した行から情報をロードする別のビュー(View2)に変更します。

この例としては、内蔵の時計選択アラームに移動し、編集を選択してからアラームを選択すると(少なくとも1つあると仮定して)、編集中の場合に限り、アラームの編集画面が表示されます。

だから私の質問は、編集中にこの機能をどのように複製するかです。

4

3 に答える 3

1

UITableViewDelegate には、オプションのメソッドがあります。

tableView:willBeginEditingRowAtIndexPath:

このメソッドは、ユーザーがセルをスワイプした場合にのみ通知します。他の方法 (つまり、ボタンを押す) で編集モードになっていることを知るには、次のコマンドを使用できます。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Editing");
    isEditing = YES;        

    return UITableViewCellEditingStyleDelete;
}

UITableViewCellEditingStyle を返す必要があることに注意してください。ほとんどの場合、これは UITableViewCellEditingStyleDelete になります。また、これはセルごとに呼び出されるため、(通知ではなく) 編集モードにあるかどうかのみを確認したい場合は、次を使用できます。

[tableView isEditing]
于 2009-11-02T17:51:05.497 に答える
0

現在編集モードになっているかどうかを追跡できます。編集ボタンをクリックすると編集モードになり、[キャンセル]をクリックすると編集モードが終了します。

編集モードに入るときは、キャンセルボタンでナビゲーションバーの別のナビゲーションアイテムを押し、編集モードを終了するときは、ナビゲーションアイテムをポップします。

編集モードであるかどうかに応じて、セルを異なる内容で表示できます。編集モードをオンまたはオフに切り替えると、テーブルデータがリロードされ、異なる表示が発生します。

didSelectRowAtIndexPathは、編集モードであるかどうかに応じて、異なる動作をする可能性があります。編集モードでセルをクリックすると編集ビューが表示され、編集モードでない場合はView2に変更します。

于 2009-11-02T17:18:28.447 に答える
0

編集モードかどうかを知る限り、それを行うUITableViewためのプロパティeditingと、適切なアニメーション化された setterがあります。(正しいボタン タイプを使用している場合、システムはこの状態に応じて [編集]/[完了] ボタンも切り替えます。)

于 2009-11-02T17:57:12.247 に答える