私は3つのView Controllerを持つシンプルなアプリケーションを書いています。ルートビューコントローラはitem listing
で、基本的なテーブルビューです。このビューコントローラをオフにして、いくつかのユーザーインタラクションに基づいて2つの異なるビューコントローラ、つまりcreate item
ビューコントローラまたはview item
ビューコントローラを押します。ルートビューコントローラに戻ってポップアップするが、別のビューにプッシュする方法は?
ストーリーボードは、Vなどのように見えます。
私のcreate item
ビューコントローラでは、ユーザーが新しいアイテムを作成するときにルートビューコントローラにポップアップしたいが、次にコントローラをview item
にプッシュして新しく作成したアイテムを見ることができるようにしたい。
私はこれを動作させることができないようです。ルートビューコントローラにポップバックするのは簡単ですが、コントローラview item
を押すことができません。
アイデア?私は以下のコードを貼り付けました。 pop関数は機能しますが、新しいビューは表示されません。
- (void) onSave:(id)sender {
CLLocation *currentLocation = [[LocationHelper sharedInstance] currentLocation];
// format the thread object dictionary
NSArray* location = @[ @(currentLocation.coordinate.latitude), @(currentLocation.coordinate.longitude) ];
NSDictionary* thread = @{ @"title": _titleField.text, @"text": _textField.text, @"author": @"mustached-bear", @"location": location };
// send the new thread to the api server
[[DerpHipsterAPIClient sharedClient] postPath:@"/api/thread"
parameters:thread
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// init thread object
Thread *thread = [[Thread alloc] initWithDictionary:responseObject];
// init view thread controller
ThreadViewController *viewThreadController = [[ThreadViewController alloc] init];
viewThreadController.thread = thread;
[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:viewThreadController animated:YES];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self.navigationController popToRootViewControllerAnimated:YES];
}];
}
"アイテムの作成"と "アイテムの表示"で異なるビューコントローラを作成しません。アイテムを作成した後にアイテムを表示することができますが、アイテムを表示した後にアイテムを編集する可能性が常にある可能性が常にあります。 1つのビュー・コントローラを作成し、表示し、編集できるように、1つのビュー・コントローラを設計する方が簡単です。ほとんどのアプリはこのように設計しています。あなたの周りのセグエイティング時間を節約してください。 – Rick