如何在PopViewController上更改ViewController的动画方向

Dil*_*lip 4 uiviewcontroller uinavigationcontroller ios

是否可以更改ViewContoller Pop动画的Direction。
现在,当我们按下VC时,它会显示动画“从左向右滑动”和“从右向左弹出”。
但是我想在Pop VC上从左到右滑动动画。

我尝试使用UIViewAnimationTransition

[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.375];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

但是它没有我需要的动画,即从左向右滑动。这是我得到的动画

typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
Run Code Online (Sandbox Code Playgroud)

Sig*_*gex 6

干杯,这是 swift 3.0 ~ 4.0 版本。

let transition = CATransition()
transition.duration = 0.4
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
self.navigationController?.view.layer.add(transition, forKey: kCATransition)
self.navigationController?.popViewController(animated: false)
Run Code Online (Sandbox Code Playgroud)


Dil*_*lip 5

我用下面的代码..

在此添加 didFinishLaunchingWithOptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    //This line of code needed so you will not see the back window when its pop, match it with your app design.
    self.window.backgroundColor = [UIColor whiteColor];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在您的POP代码添加此代码的地方,

CATransition* transition = [CATransition animation];
transition.duration = 0.4f;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:transition
                                            forKey:kCATransition];
[self.navigationController popViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)

在此GIF中检查结果,
http://www.giphy.com/gifs/l2YSeBELE1phMEd5S