3

誕生日のような単純なセルを持つナビゲーションビューがあります。その特定の行がクリックされると、新しいコントローラーがUIDatePickerを使用してビューにプッシュされます。新しい日付が選択されたら、その特定のセルのUITextField値に対してviewWillDisappearで何かを行う必要があると思います。私がそれをするための最良の方法は何ですか?childControllerでセルのindexPathへの参照を渡し、そこに設定して、tableViewのデータをリロードする必要がありますか?

もう1つの注意点は、tableViewのデータソースがキーと値のペアを持つ辞書であるとしましょう。tableViewでreloadDataを呼び出すと、子コントローラーが行った日付の変更を考慮せずに、そのディクショナリが再度読み取られます。

4

1 に答える 1

4

まず、データをリロードするのに最適な場所は、その特定の UIViewController の viewWillAppear: メソッドです。そうすれば、他のコントローラーのテーブルへの参照について心配する必要はありません。

第二に、私の誤解でなければ、オブジェクトをブラッシュアップする必要があると思います。編集 (子) コントローラーで変更した内容が、テーブル (親) コントローラーが使用する同じオブジェクトへの参照である限り、データは同期されます。一方、各コントローラーのデータを (たとえば、ファイルから) リロードしている場合は、アプリのアーキテクチャがどのように機能するかを調べます。オブジェクトはあなたの友達です。それを利用してください。

于 2008-12-08T19:20:19.130 に答える