2009-05-25 13 views
1

現在、私は2つのビューを作成し、最初のビューには次のボタンがあり、クリックすると2番目のビューに移動します。ビューステートを保存するiphone sdk

次に、2番目のビューでは、ラベルに値を設定し、クリックすると最初のビューに戻ります。

問題:最初のビューに戻ります。次のボタンをもう一度クリックすると、2番目のビューで設定したラベル値が失われます。

質問:次のボタンをクリックすると、ラベルが以前に設定されていることが検出され、以前の値が表示されるように状態を保存するにはどうすればよいですか。

答えて

1

によって異なります。多くの方法があります。

私は、2番目のビューを画面にプッシュするたびに、新しいインスタンスを作成していることを期待しています。いずれの場合でも、ビューのデータ保持を期待するのではなく、モデルのラベルの値を保存する必要があります(MVCデザインパターンを参照)。次に、2番目のビューコントローラの-viewDidLoad:関数で、ラベルの値を前の値に設定します。

+0

返信いただきありがとうございます。 私はあなたがviewDidLoad関数の値が設定されているものを行うことができます。 また、あなたが言及している他の方法は何ですか? 私は、一般的に言うとたくさんのデータがある場合、より効率的な方法があるのだろうと思いましたか? –

1

MVCはあなたの友人です。

ビューには、モデルに格納されているデータのみが表示されます。したがって、人物情報を表示すると、データは人物オブジェクトに格納されます。ビューには、データを読み取ることができるように表示しているpersonオブジェクトへの参照があります。ビューは人物オブジェクトのデータを設定しません。これはコントローラーを介して行われます。コントローラはモデル(データ)とビューの両方を参照することによってブリッジします。

ユーザーは、表示されているアイテム(ユーザー名の変更など)をクリックすると、新しい名前の人物のモデルを更新するコントローラによって処理されます。アクションが完了すると、コントローラはモデルにデータを再表示するようにビューに要求します。

アップルのリファレンスでModel-View-ControllerとUIViewControllerを見てください。

関連する問題