【发布时间】:2013-03-15 22:17:18
【问题描述】:
我没有使用导航控制器,而是使用故事板。
我必须从 1 个视图控制器过渡到另一个,为此我正在使用 segue。
现在我将 segue 样式设置为 Custom,并在相应的类中覆盖 perform 方法。
-(void)perform
{
UIViewController *sourceViewController = [self sourceViewController];
UIViewController *destinationViewController = [self destinationViewController];
CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[sourceViewController.view.layer addAnimation:transition forKey:kCATransition];animated:NO];
[sourceViewController presentViewController:destinationViewController animated:YES completion:nil];
}
但是还有一个目标视图控制器的属性modalTransitionStyle。
所以现在,源 VC 从左到右就像被推送一样,但我想表明它是由目标视图控制器推送的。相反,目标 VC 默认执行“Cover Vertical”,modalTransitionStyle 属性只有四个选项可用,其中没有一个对我有用。
我认为要让它工作,这个动画应该被添加到一些超级视图层,一个超级视图,两个视图控制器都从中呈现。但是没有这样的superview..
【问题讨论】:
标签: ios uiviewcontroller transition