2012-01-19 9 views
1

ビューが作成されたときにリストビューに値を設定するアプリがあります。私は戻るボタンでナビゲートし、前の画面に戻ってリストされたデータをそこに残しておきたいと思っています。これは可能ですか?Nav Barを使って前のビューに戻り、Viewのデータを失うことはありませんか?

バックボタンの基本的な作成で起こっているように見えるのは、それを押すと、データ入力がリストに入力されることを期待して、まったく新しいもののように表示が開始されます。前の画面の状態を保存することは可能ですか?戻るボタンを使用しているときに、それを一掃して再度入力する必要がありますか?私はむしろ、ユーザーが戻るボタンを押すたびにデータを取得するサーバーにpingする必要はありません。特にデータがすでに一度取り込まれている場合。

つまり、画面の状態が保存されているWebブラウザーのように動作し、そのデータをすべて再度Webページにpingするのではなく、そこにあるものを読み込むだけです。

ありがとうございました。

答えて

0

また、コアデータの代わりにNSUserDefaultsを使用してデータを保存します。保存するデータによって異なります。ここでアップデート1

は、たとえばあなたが世界クラスのいくつかの種類を意味するコアデータによってNSUserDefaults

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 
NSMutableArray* recentlyViewedPhotos = [[defaults objectForKey:@"recentlyViewedPhotos"] mutableCopy]; 
//Edit your object here 
[defaults setObject:recentlyViewedPhotos forKey:@"recentlyViewedPhotos"]; 
[defaults synchronize]; 
+0

NSUserDefaultsは配列を処理できる場合に機能します。 (それはできるように見える)私はいくつかの周りで遊んで見つける必要があります。コアデータは必要以上に複雑です。 –

+0

NSDictionaryのNSArrayをNSUserDefaultsに格納しましたが、何の問題もありません。 –

+0

私は配列の内容のどこかを読んでいます。私はクラスの配列を持っている場合、それはNSUserDefaultsが好きな値の配列ではないのでそれを投げ捨てますか?すなわち、文字列、データ、intなど –

2

確実に可能です。最良の方法は、リストのデータをコアデータに保存し、ビューが表示されたときにいつでもデータが保存されているかどうかを確認し、そうでない場合はネットワークに移動してデータを入力することです。

+0

を使用することですか?私はこの解決策を考えていましたが、ビューの状態をメモリに保存してからそれを思い出す方法があるかどうかもっと尋ねました。 –

+0

[コアデータプログラミングガイド](http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coredata/cdprogrammingguide.html)を参照してください。基本的には、各ビューコントローラの状態をどのように保存するかをカスタマイズする代わりに、ビューの生成に使用されるデータを保存し、ビューを作成するたびにデータストアからリロードします。 – wattson12

関連する問題