2011-01-16 1 views
0

私は新しいレコードを追加したり、既存のレコードを編集するのに使うビューを持っています。 viewWillAppear私は自分のレコードをロードするか、テキストフィールドを空白のままにします。iPhone、選択画面にpushViewControllerを使用すると、値はどのように保持する必要がありますか?

私は、追加/編集画面からpushViewControllerを使用して表示される選択画面を持っています。値を選択して以前の画面に戻ると、viewWillAppearが呼び出され、レコードが再ロードされ、変更されたテキストフィールド値が失われます。

変更されて現在失われている値はどのように保つ必要がありますか?

私はあなたに質問すると、viewDidLoadにあなたのレコードをロードしてみてください。なぜなら、画面がたくさん使われていて、画面が表示されるたびに呼び出されないからです。

答えて

0

状態を保存するためにビューに依存しないでください。ビューに表示されるデータの変更をモデルオブジェクトのいくつかの形式に保存する必要があります。こうすることで、特定のモデルで見つかった値で再ペイントすることで、いつでもビューを再ロードしたり再作成したり、同じ状態に戻すことができます。

このパターンは、View Controllerがメモリ使用を減らすために必要に応じてビューをアンロードして再ロードできるようにするために重要です。 UIViewControllerはメモリ警告に対して自動的にこれを行います。したがって、表示されていないときにビューが古いデータを保持していると仮定すると、その情報を失うことになります。

あなたの場合は、テキストフィールドの値を変更するときにこのレコードを更新する必要があるようです。その後、-viewWillAppear:メソッドのレコードの値をテキストフィールドにリロードすることができます。

残念ながら、あなたが作業しているコードを表示しない限り、より具体的な方法はわかりません。

関連する問題