需求:
需要在当前界面弹出一个视图框(这样的需求很多,采用的方式也比较多),因为弹出的视图控件和操作都比较多,避免当前视图控制器的代码冗余,所以不得寻求其他方法。多番思量还是觉得present当属首选
test:
1. 首先在当前视图控制器中需要做的事:
1.1初始化一个button添加present的点击跳转事件
- (void)presentAction{
TestController * testVC = [[TestViewController alloc]init];
//present模式设为自定义
testVC.modalPresentationStyle = UIModalPresentationCustom;
//遵循正在跳转协议
testVC.transitioningDelegate = self;
//跳转的animated必须为YES(ture)
[self presentViewController:testVC animated:YES completion:nil];
}
1.2在跳转事件中,让self遵循testVC的跳转协议,也就是self遵循跳转动画协议
1.3 遵循协议实现两个协议方法:
//present动画协议
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source{
return nil;
//[PresentAnimation new];
}
//dismiss动画协议
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController