CATransition 转场动画

    CATransition *myTransition=[CATransition animation];//创建CATransition

    myTransition.duration=1;//持续时长0.3秒

    myTransition.timingFunction=UIViewAnimationCurveEaseInOut;//计时函数,从头到尾的流畅度

    myTransition.type=kCATransitionReveal;//动画类型

    myTransition.subtype=kCATransitionFromLeft;//子类型

    //要令一个转场生效,组要将动画添加到将要变为动画视图所附着的图层。例如在两个视图控制器之间进行转场,那就将动画添加到窗口的图层中:

    [[self.view.superview layer]addAnimation:myTransition forKey:nil ];

    //如果是将控制器内的子视图转场到另一个子视图,就将动画加入到视图控制器的图层。还有一种选择,用视图控制器内部的视图作为替代,将你的子视图作为主视图的子图层:

    [ self.view.layer addAnimation:myTransition forKey:nil ];

//动画完成后进行的操作

//    [_tableView reloadData];

//    TopViewController *top=[[TopViewController alloc]init];

//    [self presentViewController:top animated:YES completion:^{

//        

//    }];

原文地址:https://www.cnblogs.com/zhanghuanan/p/5383281.html