【问题标题】:Custom Segue With CATransition Not working使用 CATransition 自定义 Segue 不起作用
【发布时间】:2013-07-21 12:36:37
【问题描述】:

我正在尝试在我的视图控制器之间创建自定义转换。我正在关注this 教程,但单击/点击按钮后没有任何反应!

这是 CustomSegue.m 的代码

#import "CustomSegue.h"
#import "QuartzCore/QuartzCore.h"

@implementation CustomSegue

-(void)perform {
NSLog(@"ActionTest");

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 = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom



[sourceViewController.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[sourceViewController.navigationController pushViewController:destinationController animated:NO];
}

@end

记录了日志,但没有执行转换,也没有更改视图控制器。 我还将 segue 样式更改为“custom”,将 class 更改为“ZHCustomSegue”

我错过了什么吗?

谢谢

【问题讨论】:

  • 您能分享您在故事板中自定义转场的屏幕截图吗?您可以使用⌘⇧4
  • 你有没有在storyboard文件中把segue类型改成ZHCustomSegue?
  • @Can,不幸的是我需要 10 声望才能在此处上传图片,所以这里是图片的链接:s13.postimg.org/8pgyvfhl3/…
  • @codeinOrange,我相信我在这里做的是图片的链接:s13.postimg.org/8pgyvfhl3/…
  • 你也在使用导航控制器吗?

标签: ios storyboard modal-dialog segue catransition


【解决方案1】:

将 segue 的最后两行更改为:

[destinationViewController.view.layer addAnimation:transition forKey:kCATransition];
[sourceViewController presentViewController:destinationController animated:NO completion:nil]; 

您试图引用一个不存在的导航控制器。

【讨论】:

  • 原来密钥在 kCATransition
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多