3

プログラムでプッシュxcodeアンワインドセグエを実行するにはどうすればよいですか?

ストーリーボードを使用してボタンを「終了」まで引くのが簡単な方法ですが、ビューを終了する前に、最初にいくつかのコードを実行することを意図しています。

4

3 に答える 3

5

rootViewControllerに戻るには、次を使用します。

[self.navigationController popToRootViewControllerAnimated:(BOOL)]

または、特定のコントローラーに移動するには:

[self.navigationController popToViewController:
    [[self.navigationController viewControllers]
    objectAtIndex:THEINDEXOFTHEVIEWCONTROLLERTOUNWINDTO]
    animated:YES];

もう少し詳細については、この投稿の私の答えを参照してください: UIStoryboardのルートViewコントローラーにプッシュ

于 2013-03-07T13:43:52.570 に答える
4

終了前にコードを実行したいだけの場合(ただし、単純にしておくと、何かを返すまでUIロックが発生canPerformUnwindSegueAction:fromViewController:withSender:します)、宛先コントローラーをオーバーライドできます。

おそらくこのようなもの:

- (BOOL)canPerformUnwindSegueAction:(SEL)action 
                 fromViewController:(UIViewController *)fromViewController 
                         withSender:(id)sender
{
    // Some operation...

    return YES; // Or NO if something went wrong and you want to abort
}

それ以外の場合は、実際にプログラムでセグエを作成し、をオーバーライドしてアニメーション/アンワインドロジックを管理できますsegueForUnwindingToViewController:fromViewController:identifier:

完全なドキュメントはここにあります

于 2013-03-07T13:29:01.260 に答える
1

UIViewControllerでこのメソッドを呼び出すことにより、コードでセグエを発生させることができます

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender

ストーリーボードの2つのビューの間にセグエを作成します。セグエに名前を付け、識別子パラメータで正確な名前を使用するようにしてください。

于 2013-03-07T13:22:42.023 に答える