私は iOS 開発の初心者です。異なるビュー間でデータを渡すことに取り組んでいます...
10 個の質問のリストがあるとします。各質問には異なるページがあり、UI には、質問ごとに収集された入力とともに、前へ/次へのボタンが含まれます。
各質問を表示し、「ステップ」でデータを収集してから、最終的にすべてを 1 つのエントリとして Core Data モデルに保存するにはどうすればよいですか?
これがどのように行われるか教えていただけますか?とても有難い!ありがとう!
inafzigerが述べたように、シングルトンを使用するのが最善ですが、各ビューの最後ではなく、最後のビュー呼び出しでデータを保存すると、パフォーマンスが向上します。データがアプリケーション全体に関連しているように聞こえます。
その場合、私はあなたを置きます:
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain) NSPersistentStoreCoordinator *persistentStoreCoordinator;
アプリケーションデリゲート内では、この方法でどこからでもアクセスでき、前の質問から情報を取得する必要がある場合は、そのアクションを非常に簡単に実行できます。
これが役立つことを願っています
編集:( あなたのコメントに関して)
ViewController
各質問に同じまたは類似のレイアウトがあると仮定すると、同じものの新しいインスタンスを別のパラメーターでプッシュできます。
UIViewController* myNewVC = [UIViewController alloc] init];
[myNewVC setQuestion:self.question+1];
[[AppDelegate sharedDelegate].navigationController pushViewController:myNewVC animated:YES]
または上記に似たもの、UITableViewController は常に UIViewController ですが、UIViewController は常に UITableViewController ではないことに注意してください。
このようにして、毎回新しい質問を表示し、ViewController
各質問にまったく同じものを再利用できます
属性質問番号を持つ質問エンティティを使用して、質問をデータモデルに保存します。次に、View Controller に現在の質問番号を ivar で追跡させます。前後に進むたびに、現在の質問番号をインクリメントまたはデクリメントし、コア データから質問を取得します。
コードのさまざまな部分をアプリ デリゲートに結合することは避けることを強くお勧めします。代わりに、Apple は、プロパティを設定するかデリゲート パターンを使用して、ビュー コントローラーからビュー コントローラーに必要なデータ構造を渡すことをお勧めします。