0

カスタムセグエがあります:

-(void)perform {

    __block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
    __block UIViewController *destinationController = (UIViewController*)[self destinationViewController];

    float duration = 0.5;

    NSLog(@"FlipSegue.m - source:%@ dest:%@", sourceViewController, destinationController);

     if (self.isUnwinding) {
         NSLog(@"FlipSegue.m - isUndwinding - Flipping View 2 to View 1");
         //[sourceViewController.navigationController dismissViewControllerAnimated:NO completion:nil];
         [UIView transitionWithView:sourceViewController.navigationController.view duration:duration
                            options:UIViewAnimationOptionTransitionFlipFromLeft
                         animations:^{
                             [sourceViewController.navigationController dismissViewControllerAnimated:NO completion:nil];
                         }
                         completion:NULL];
     } else {
         NSLog(@"FlipSegue.m - Going Forward - Flipping View 1 to View 2");
         //[sourceViewController.navigationController pushViewController:destinationController animated:NO];
         [UIView transitionWithView:sourceViewController.navigationController.view duration:duration
                            options:UIViewAnimationOptionTransitionFlipFromLeft
                         animations:^{
                             [sourceViewController.navigationController pushViewController:destinationController animated:NO];
                         }
                         completion:NULL];
     }

}

をセットアップし、segueunwind segue使用していstoryboardます。

私はサブクラス化UINavigationControllerし、使用してカスタム巻き戻しセグエを取得しています- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)

セグエ from View 1toを呼び出すView 2と、期待どおりに動作します。

アンワインド セグエを呼び出すと、View 2反転しますが、View 2再び表示されます。コードのisUnwinding一部が起動しますが、View 1再表示されません。

この問題を解決する方法についてのヒントをいただければ幸いです。

4

2 に答える 2

1

アンワインド セグエは絵コンテで設定しましたか?

- (IBAction)unwind:(UIStoryboardSegue *)segue;ViewControllerに追加する 1. ストーリーボードの view2 に移動します。ビューから Ctrl キーを押しながらドラッグして終了します。巻き戻し方法を選択します。ストーリーボードのアウトラインに移動し、作成したアンワインド セグエをクリックします。そのクラスをカスタム セグエに変更します。

于 2015-01-07T17:48:11.463 に答える