CATransition *myTransition=[CATransitionanimation];//创建CATransition
myTransition.duration=1;//持续时长0.3秒
myTransition.timingFunction=UIViewAnimationCurveEaseInOut;//计时函数,从头到尾的流畅度
myTransition.type=kCATransitionPush;//动画类型
myTransition.subtype=kCATransitionFromTop;//子类型
//要令一个转场生效,组要将动画添加到将要变为动画视图所附着的图层。例如在两个视图控制器之间进行转场,那就将动画添加到窗口的图层中:
[[self.view.superviewlayer]addAnimation:myTransitionforKey:nil ];
//如果是将控制器内的子视图转场到另一个子视图,就将动画加入到视图控制器的图层。还有一种选择,用视图控制器内部的视图作为替代,将你的子视图作为主视图的子图层:
[ self.view.layeraddAnimation:myTransition forKey:nil ];
TopViewController *top=[[TopViewControlleralloc]init];
[selfpresentViewController:top animated:YEScompletion:^{
}];