ストーリーボード内の別のシーンにプログラムで移行する場合の一般的な手順は次のとおりです。
ビュー コントローラ (ボタンではなく、ビュー コントローラ) 間のセグエを定義します。
そのセグエにストーリーボード識別子を与えます。
IBAction
検証を行うボタンの を作成し、成功した場合は
[self performSegueWithIdentifier:@"myidentifier"];
スタック オーバーフローに関するこの回答を参照してください。ここでは、このプロセスを詳細に説明しています。あなたの場合、データを検証しているように聞こえ、ある一連の条件で1つのセグエを実行し、別の一連の条件で別のセグエを実行する可能性があります。したがって、これら 2 つのセグエに一意の識別子を与えるだけで、コード内で必要な方を実行できますIBAction
。
次のシーンにデータを渡すという点では、別のメソッド でこれを行います。このメソッドはprepareForSegue
、宛先コントローラーが作成された後、それが提示される前に iOS によって呼び出されます。ここで、宛先コントローラーにパラメーターを渡すことができます。たとえば、個人の名と姓を取得し、それを宛先コントローラーに渡したいと仮定しています。これには、名と姓のプロパティがあります。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"myidentifier"])
{
MyDestinationController *controller = segue.destinationViewController;
controller.firstName = self.labelFirstName.text;
controller.lastName = self.labelLastName.text;
}
}