【发布时间】:2014-10-19 08:15:39
【问题描述】:
我想使用自定义 segue 切换视图控制器,其中新控制器来自右侧并覆盖旧控制器 - 就像在 iPhone 标准设置/消息应用程序中一样
我尝试了以下自定义转场:
-(void)perform {
UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];
CATransition* transition = [CATransition animation];
transition.duration = .25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromRight; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
[destinationController.navigationController.view.layer addAnimation:transition
forKey:kCATransition];
[sourceViewController.navigationController presentViewController:destinationController animated:NO completion:nil];
}
但动画不是我想要的。旧屏幕消失,新控制器从黑色背景上出现。
kaTransition 的所有类型我都试过了。
我错过了什么,或者有没有其他方法可以执行该动画?
【问题讨论】:
标签: ios iphone uiviewcontroller segue uistoryboardsegue