アプリケーションがマスター/ディテール テンプレートから作成されていない場合、セグエを使用して Objective-C のストーリーボード間でデータを渡すことは可能ですか?
私が見た唯一の例は、マスター詳細ビューを持つものです。
アプリケーションがマスター/ディテール テンプレートから作成されていない場合、セグエを使用して Objective-C のストーリーボード間でデータを渡すことは可能ですか?
私が見た唯一の例は、マスター詳細ビューを持つものです。
はい、そうです。次のように、セグエ元の viewController に prepareForSegue:sender: を実装できます。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"MySegue"]) {
MyOtherViewController *destination = (MyOtherViewController *)segue.destinationViewController;
destination.someProperty = self.someOtherProperty;
}
}
これは、セグエが実行される前に呼び出され、セグエ先の viewController へのフックを提供します。
編集:
ViewControllers が別の Storyboard にあることに気づきませんでした。この質問はすでにほとんど回答されています: https://stackoverflow.com/a/9610972/1716763
ただし、実際にはセグエを使用するわけではありません。プログラムで処理を行い、2 つ目のビュー コントローラーをナビゲーション スタックにプッシュするか、モーダルに表示します。
@Inafziger の回答のコードの一部を例に合わせて調整しました。
UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
MyOtherViewController *myViewController = (MyOtherViewController *)[secondStoryBoard instantiateViewControllerWithIdentifier:@"myOtherViewController"];
myViewController.someProperty = self.someOtherProperty;
[self.navigationController pushViewController:myViewController animated:YES];