转场效果如图
转场动画的实现
FromViewControll.m
push之前的控制器
总结来说,在push之前的控制器中只要实现导航控制器的代理方法即可。该方法返回一个遵守``协议的对象,这个对象是来进行转场动画的。
TransitionAnimator.m
执行转场动画的对象
UIViewControllerTransitioning
协议中的两个方法是转场的两个必须方法
-(void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
是转场动画执行的位置
通过transitionContext
来获取相关的视图及控制器来完成动画
在动画执行完成之后一定要调用转场完成的方法completeTransition:
总结
简单来说一个转场的完成就是两步
- fromVc中实现导航控制器代理方法,返回一个转场对象
- 创建一个转场对象,这个对象需要遵守
UIViewControllerAnimatedTransitioning
协议,实现协议方法即可完成
demo
https://github.com/cocacola-ty/demos/tree/master/TransitionExample