、あなたはセグエにInterface Builderで「ストーリーボードID」を与え、その後、次のことができます。
[self performSegueWithIdentifier:"pushToMyVC" sender:self];
を別の方法として、あなたはセグエを実行しない場合宛先ビュー・コントローラーをインスタンス化し、手動でそのビュー・コントローラーにプッシュすることができます。あなたがやらなければならないことは、先のビューコントローラは、その後、あなたができる、Interface Builderで、独自の「ストーリーボードID」を持っていることを確認することです。
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController:controller animated:YES];
あなたは「プッシュ」と述べた(ので、私は上記のpushViewController
を使用しました)。あなたが本当に「モーダルビューコントローラを提示」を意味している場合、2番目の行があること:あなたが見ることができるように
[self presentViewController:controller animated:YES completion:nil];
、あなたはは、新しいシーンにプッシュするprepareForSegue
を使用するを持っていません。宛先ビューコントローラに情報を渡す場合は、prepareForSegue
を使用します。それ以外の場合は必要ありません。
明らかに、ストーリーボードを使用していない場合(例:NIBを使用している場合)は、プロセスが全く異なります。しかし、prepareForSegue
はその環境には適用されないため、NIBを使用していないと仮定します。あなたはNIBを使用していた場合は、次のようにしかし、それは次のようになります。私の場合は
SecondViewController *controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
出典
2013-03-12 21:11:51
Rob
この回答は非常に便利です! – Plagorn