自己实现控制器动画的方法,还是比较常见的. 这个是 UINavigationController
的 Push
和 Dismiss
动画.
1 | // |
然后在 AppDelegate中,为控制器包装一个导航控制器
1 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
以上纯碎是简单的布局代码,和主题无关.
接下来进入正题:
在Apple的设计中, 实现自定义的切换动画,依赖的是协议中的方法,而不是具体的对象的具体方法,所以我们需要创建一个类
1 | #import <UIKit/UIKit.h> |
.m 文件
1 | #import "GUINavigationControllerDelegate.h" |
描述的非常明确了, 那么现在我们需要一个动画对象,这个对象需要遵守UIViewControllerAnimatedTransitioning
协议
1 | // |
具体的实现
1 | // |
注释已经写的非常清楚,在此不再赘述.