我想知道是否可以在自定义Segue转换中使用CATransition。我创建了CustomSegueTransition.m文件,并在我希望进行过渡的自定义segue类中引用了它。
这是我的CustomSegueTransition.m文件的代码:
#import "CustomSegueTransition.h"
#import "QuartzCore/QuartzCore.h"
@implementation CustomSegueTransition
-(void) perform {
// set up an animation for the transition the content
CATransition *animation = [CATransition animation];
[animation setDuration:0.25];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
[UIView commitAnimations];
}
@end
它没有任何错误警告,但是当按下按钮导致segue转换时,转换不会执行。我是否在CATransition代码中缺少某些内容?
谢谢!
最佳答案
@格兰特
我没有完整的答案,但是我确实注意到您从未调用过新视图,因此没有过渡。我不知道您要拍摄的是推送,弹出还是模态,但这是您需要添加的代码类型:
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[src presentModalViewController:dst animated:YES];
要么
[src presentViewController:<#(UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>];
我相信设置自定义动画还有其他问题,尽管我对解决方案感兴趣,但我没有答案。