3

TTTableViewのsetEditingを切り替えるボタンがあります。以前は、「通常の」UITableViewと次のメソッドを使用して実際にデータを削除していましたが、Three20クラスに類似したものは見当たらず、削除ボタンが押されたときにメソッドを使用しても呼び出されません。行。

  • (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{//動作する}

何かが足りないに違いないが、どこにあるのかわからない。TTTableViewControllerのsetEditingは何にも接続されていないようです。didDeleteObjectメソッドがありますが、それが上記のメソッドの代わりになるかどうかはわかりません。任意の入力をいただければ幸いです。

4

1 に答える 1

7

での経験も、から継承されないTTTableViewControllerため、予想とは少し異なります。テーブルのビューコントローラがプロトコルを実装しているほとんどのiPhoneチュートリアルとは異なり、Three20は別々のクラスを介してそれらを実装します。モデルインスタンスを使用してコントローラのプロパティを設定することが期待され、コントローラは独自のデリゲートを作成します(メソッド内で、オーバーライドできます)。UITableViewControllerUITableViewDelegateUITableViewDataSourcedataSourcecreateDelegate

実装するメソッドはプロトコルtableView:commitEditingStyle:forRowAtIndexPath:の一部であるため、コントローラー自体ではなく、モデルUITableViewDataSourceクラスに実装する必要があります。

TTTableViewController、を直接処理せずsetEditing:animated:、から基本実装を継承するだけUIViewControllerです。

表示されるメソッドは、プロトコルの実装としてmodel:didDeleteObject:継承されます。基になるデータモデルへの変更がビューレイヤーに変更を通知できるようにするためにあります。たとえば、アプリケーションがWebからデータをダウンロードしている場合、ユーザーインターフェイスで何が起こっているかに関係なく、行が常に表示されたり消えたりすることがあります。UIを介して編集を促進しようとしている場合は、それをいじる必要はありません。TTModelViewControllerTTModelDelegate

于 2009-10-06T02:59:37.907 に答える