2012-03-13 11 views
4

私は現在、複数のビュー、30以上のViewControllerを持つアプリケーションで作業しています。私はストーリーボードを使ってビューの流れをつなぎます。ViewControllerを同じ状態に保ち、バックグラウンドでロードしますか?

ユーザーが1つのViewControllerからナビゲートすると、そのビューに戻ったときに、ユーザーが入力したのと同じ状態で同じ状態になります。私は非常に多くの意見を持っているので

(UITextFeild、UILabel、UITextViewなどに)私はグローバル変数にまたはで情報を保存する必要がないために理想的である:事前に

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

おかげで、 よろしくお願いします。

答えて

2

データを保存する方法はたくさんあります。グローバル変数とデフォルトシステムは、通常、最良の選択肢ではありません。あなたのアプリケーションのための実際のデータモデルの開発について考えなければならないように思えます。モデルはMVCのMであり、基本的にデータを格納し、アプリケーションの "ビジネスロジック"を管理する1つ以上のオブジェクトです。

あなたのモデルは、単一の変更可能な辞書と同じくらい簡単かもしれませんし、関連するオブジェクトの複雑なグラフでもよいでしょう。私はMVCのすべてをここで説明しようとはしません。あなたがそのアイデアに慣れていなければ、それについて読むことができます。しかし、各ビューコントローラの状態を保存するモデルを作成することは確かに可能であり、特定のコントローラがアクティブになると、保存された状態に合わせてビュー階層を設定することができます。 ViewControllerが&にスタックからポップされたどんな状態保存スタックにあなたがそれをプッシュする別のViewControllerを起動すると、最後をもたらす一方で

+0

アドバイスをいただきありがとうございます。あなたはこのMVCのことを読む良い記事がありますか? -本当にありがとう。 –

+0

[* Objective-C Programming *の概念](https://developer.apple.com/library/ios/#documentation/General/Conceptual/CocoaEncyclopedia/Introduction/Introduction.html)を読んでみてください。 MVCのセクションは[* Model-View-Controller *]です(https://developer.apple.com/library/ios/#documentation/General/Conceptual/CocoaEncyclopedia/Model- View-Controller/Model-View-Controller.html) – Caleb

1

基本的には、表示するのViewController(&その状態を)押し、スタックのようなものを実装する必要があります。

幸いにもiOS - UINavigationViewControllerにはこのようなものがあります。どのようにあなたのプロジェクトでこれを実装する方法を教えてくれます

​​

This tutorial - それはのような、そのような方法を提供します。だから、storyControllerを介してviewControllerをリンクするのではなく、私はあなたの袖をロールアップすることをお勧めします&すべてのコードでこれを実装します。お役に立てれば。

+0

あなたもありがとう、私はそれについても読み上げます。 –

+1

管理ビューコントローラと管理データを混同しないでください。 30のビューコントローラを持つアプリケーションは、ナビゲーションスタックを超えて拡張された頑丈なデータ管理システムを備えている必要があります。 – Caleb

+0

[引用]ユーザーが入力したのと同じ状態(UITextFeild、UILabel、UITextView)のまま同じ状態になります。 –

関連する問題