【问题标题】:How do I change the UINavigationController push transition style?如何更改 UINavigationController 推送过渡样式?
【发布时间】:2015-03-17 09:26:41
【问题描述】:

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

谢谢

【问题讨论】:

标签: ios xcode uiviewcontroller uinavigationcontroller


【解决方案1】:

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

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];

push 也是一样。

不要忘记包含 QuartCore (#import )

【讨论】:

  • 我把这段代码放在哪里?它是否适用于界面构建器,即 performSegue ?
  • 我用过这个,效果很好。反正有没有从黑色改变背景颜色?它在转换时会闪烁黑色。
  • 这行得通,唯一的缺点是状态/导航栏闪烁。
  • 这是一个重复的答案:stackoverflow.com/questions/2215672/…
【解决方案2】:

是的,你可以用不同的动画改变 ViewController 的过渡风格。请参阅下面的链接。

  1. transition style animation

  2. ViewController transition

  3. Custom ViewController transition

  4. ADTransitionController

  5. transition

  6. ViewController T

【讨论】:

    【解决方案3】:

    您可以创建一个NSObject 类并从UIStoryboardSegue 子类化它,然后覆盖-(void)perform 函数以赋予它您自己的自定义动画。 在那里,您可以使用任何预定义或您自己的动画。 详情请查看this link

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 1970-01-01
      • 2011-12-03
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多