私はUIPageViewController
を持っています。複数のView Controllerを持っていて、それぞれがユーザーの反応に疑問を持っています。これらの質問に答えると、値をローカルに保存したいので、後でこれらの値が入力されたPDFを作成することができます。これを行う最善の方法は何ですか? NSUserDefaultsを使用しますか?UIPageViewControllerの子ビューコントローラからの値を保存して、アプリケーションの別の場所で使用するにはどうすればよいですか?
0
A
答えて
1
どのようにデータを保存するかによって異なります。アプリケーションがデバイスから削除されたとしても、データがユーザーの存続期間を持続させるようにするには、データベース(Realm、CoreDataなど)など、クライアントから離れた場所に保存する必要があります。あなた自身が、ユーザーの経験を形作るために引き続き使用するデータそのものをアプリケーションに持たせたい場合は、UserDefaults
を使うことができますが、それはあなたのやりたいことのようには見えません。また、データをアプリのそのインスタンスの存続期間だけ持続させたい場合は、それを通常のプロパティに格納します。
私は何らかの理由で3番目のオプションを選択すると思われます。もしそうなら、私は親ビューコントローラ(すべてのページビューコントローラが参照できることを)...
class SurveyAnswers {
var userName: String?
var userAge: Int?
var favoriteSauce: PizzaSauce?
var livesWithCats: Bool?
}
のインスタンスプロパティとしてのモデルオブジェクトを作成示唆...と単にプロトコル/デリゲートパターンを使用しますオブジェクトの同じインスタンスを更新している限り、そのオブジェクトのプロパティを更新する子から親にデータを渡します。次に、PDF
ファイルを準備する準備が整ったら、そのオブジェクトが子ビューコントローラによって設定されているオブジェクトを親に尋ねてください。
これで問題ない場合は、このデータを保存して取得する方法として共有AppDelegate
を使用できます。私はこれを習慣化することに注意するだけですが、アプリケーション全体に応じて、これは完全に受け入れられる選択肢かもしれません。
一般的なルール:データを転送する宛先オブジェクトのプロパティを設定し、デリゲートを使用してデータを後方に渡します。
関連する問題
- 1. コンテナビューを保持しているビューコントローラの保存ボタンから、コンテナビューコントローラの詳細(NSUserDefaultsを使用)を保存するにはどうすればよいですか?
- 2. ビデオをアプリケーションのディレクトリに保存し、ビューコントローラで再生するにはどうすればいいですか?
- 3. UIPageViewControllerを使用して個別のXIBをロードするにはどうすればよいですか?
- 4. 別の場所を保存せずに画像を開くにはどうすればいいですか?
- 5. Chrome Dev Toolsでは、HTMLの保存場所を確認するにはどうすればよいですか?
- 6. 撮影したネットワークの場所を保存するにはどうすればよいですか?
- 7. databseでユーザーと保存場所の距離を計算するにはどうすればよいですか?
- 8. 別のクラスを使用してrailsアプリケーションで使用するにはどうすればよいですか?
- 9. コアデータを使用して、別のビューコントローラに保存された配列にアクセスするにはどうすればよいですか?
- 10. ASP.netを使用したチェックでチェックボックスの値を保存するにはどうすればよいですか?
- 11. オブジェクトの場所をDOMツリーに保存/復元するにはどうすればよいですか?
- 12. ダウンロードしたファイルを保存する場所を選択するにはどうすればよいですか?
- 13. Androidアプリの保存場所を確認するにはどうすればよいですか?
- 14. 別の場所から環境設定を取得するにはどうすればよいですか?
- 15. Javascriptを使用してJSONに値を保存するにはどうすればよいですか?
- 16. どのようにしてMP4ファイルをある場所から別の場所に移動できますか?
- 17. WindowsでDockerイメージの保存場所を移動するにはどうすればいいですか?2016
- 18. jQueryを使用してスタイルシートの場所を設定するにはどうすればよいですか?
- 19. タブバービューコントローラを別のビューコントローラで隠すにはどうすればいいですか?
- 20. Windows Server 2016上のDocker EE用に画像が保存される場所と場所を変更するにはどうすればよいですか?
- 21. iOS5でストーリーボードを使用してユーザーのログインデータを保存するにはどうすればよいですか?
- 22. ファイルを保存する場所をユーザーに選択させるにはどうすればよいですか?
- 23. 不正使用からGPLベースのアプリケーションを保護するにはどうすればよいですか?
- 24. m2mフィールドセッションをフォームから別のフォームに保存するにはどうすればよいですか?
- 25. ImageJを別のJavaアプリケーションのライブラリとして使用するにはどうすればよいですか?
- 26. 別のビューコントローラからテーブルビューにデータを挿入するにはどうすればよいですか?
- 27. ストーリーボード内のビューコントローラに「識別子」を付けるにはどうすればよいですか?
- 28. 別のアプリケーションを使用してAndroidアプリケーションを開くにはどうすればよいですか?
- 29. PythonのTkinterを使用して、そのアプリケーションでのみ使用するデータを保存するにはどうすればよいですか?
- 30. 場所ピッカーの住所から国、都市を取得するにはどうすればよいですか?
私の2セント:単純な数字/文字列の真偽である4-5の回答のようなものであれば、UserDefaultsを使用して逃げることはできますが、それはそれらの通常の仕事ではありません...そうでなければCoreData構造を調べます。 –
あなたの仕事は、渡されるデータ/保存されたデータがある場合にそうすることができるように、あなたのアプリケーションアーキテクチャを設計することです。これがユーザーのデフォルト設定である場合は、ユーザーのデフォルトを使用します。つまり、永続的に保存するものです。それが渡されるデータだけの場合は、それを参照することができるオブジェクトのインスタンスプロパティに格納します。ページビューコントローラ自体、またはそれがある場合はその親であるか、またはアプリケーションデリゲートであるか、または... – matt