iOS 跳转动画 改变pushViewController动画

先看下效果:

 

 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];

猜你喜欢

转载自www.cnblogs.com/huangzhenwei/p/10271549.html