先看下效果:
BPController *VC = [[BPmController alloc] init]; [UIView transitionWithView:self.navigationController.view duration:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{ CATransition* transition = [CATransition animation]; transition.duration =0.0f; transition.type = kCATransitionPush; transition.subtype = kCATransitionFromBottom;//可以修改从哪个方向过来 transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseIn];//动画效果 [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];//添加动画 VC.reqListDataArr = self.miniProgramDataArr; [self.navigationController pushViewController:VC animated:NO];//这里的animated要设置为NO } completion:nil];
返回同理
[UIView transitionWithView:weakself.navigationController.view duration:0.4 options:UIViewAnimationOptionCurveEaseIn animations:^{ CATransition* transition = [CATransition animation]; transition.duration =0.4f; transition.type = kCATransitionReveal; transition.subtype = kCATransitionFromTop; transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseIn]; [weakself.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [weakself.navigationController popViewControllerAnimated:false]; } completion:nil];