0

アプリケーションがマスター/ディテール テンプレートから作成されていない場合、セグエを使用して Objective-C のストーリーボード間でデータを渡すことは可能ですか?

私が見た唯一の例は、マスター詳細ビューを持つものです。

4

1 に答える 1

0

はい、そうです。次のように、セグエ元の 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];
于 2013-09-30T14:53:20.497 に答える