如何更改 UINavigationController 推送过渡样式?

How do I change the UINavigationController push transition style?

我正在使用导航控制器并推送 segues 来控制我的应用程序的流程。无论如何要更改推送 segues 从右到左的默认动画?有什么我可以覆盖的地方吗?

谢谢

是的,您可以使用不同的动画更改 ViewController 的过渡样式。见下文 link。

  1. transition style animation

  2. ViewController transition

  3. Custom ViewController transition

  4. ADTransitionController

  5. transition

  6. ViewController T

我做了以下操作,效果很好..简单易懂..

CATransition* transition = [CATransition animation];
transition.duration = 0.5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
//transition.subtype = kCATransitionFromTop; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[[self navigationController] popViewControllerAnimated:NO];

推送也一样..

不要忘记包含 QuartCore (#import)

您可以从 UIStoryboardSegue 创建一个 NSObject class 和子 class 它,然后重写 -(void)perform 函数以赋予它您自己的自定义动画. 在那里您可以使用任何预定义的或您自己的动画。 有关详细信息,请查看 this link.