翻转过渡uinavigationcontroller推

vee*_*eev 3 objective-c uinavigationcontroller ios

我正在使用以下代码在导航堆栈中推送UIViewController

[UIView animateWithDuration:0.75
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         [self.navigationController pushViewController:ViewController animated:NO];
                         [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
                     }];
Run Code Online (Sandbox Code Playgroud)

现在,当我按回去时,我希望它能做同样的动画,但它不起作用.知道为什么吗?

在ViewController.m中

[UIView animateWithDuration:0.75
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         [self.navigationController popToRootViewControllerAnimated:NO];
                         [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
                     }];
Run Code Online (Sandbox Code Playgroud)

vee*_*eev 21

实际上,过渡应该像这样完成

//的MainView

[UIView transitionWithView:self.navigationController.view
                      duration:0.75
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        [self.navigationController pushViewController:viewcontroller animated:NO];
                    }
                    completion:nil];
Run Code Online (Sandbox Code Playgroud)

//在viewcontroller中

[UIView transitionWithView:self.navigationController.view
                  duration:0.75
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                    [self.navigationController popToRootViewControllerAnimated:NO];
                }
                completion:nil];
Run Code Online (Sandbox Code Playgroud)