在需要使用的控制器中添加#import "BSYAnimator.h"和#import "BSYTransitionAnimator.h"两个头文件:
@property(nonatomic,strong)BSYAnimator *Animator; @property(nonatomic,strong)BSYTransitionAnimator TransitionAnimator; ///遵循代理 @interface ViewController ()<UINavigationControllerDelegate,UIViewControllerTransitioningDelegate> ///需要跳转的控制器 @property(nonatomic,strong)TwoViewControllertwo;
在- (void)viewDidLoad 中初始化
self.Animator = [[BSYAnimator alloc]init]; self.TransitionAnimator = [[BSYTransitionAnimator alloc]init]; TwoViewController *two = [[TwoViewController alloc]init]; self.navigationController.delegate = self; two.transitioningDelegate = self; two.modalPresentationStyle = UIModalPresentationCustom;
//然后在跳转的方法中 [self.navigationController pushViewController:self.two animated:YES];
实现代理方法 #pragma mark - UINavigationControllerDelegate iOS7新增的2个方法 // 动画特效
(id) navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC {
if (operation == UINavigationControllerOperationPush) { return self.Animator; }else{ return nil; } } #pragma mark - Transitioning Delegate (Modal) -(id)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source { self.TransitionAnimator.animationType = AnimationTypePresent; return self.TransitionAnimator; }
-(id)animationControllerForDismissedController:(UIViewController *)dismissed { self.TransitionAnimator.animationType = AnimationTypeDismiss; return self.TransitionAnimator; }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。