2013-04-12 54 views
0

由于某种原因,我想为我的segue transiton在sotryboard上有一个自定义的推动动画,从右到左推动insead从左向右推,我开发了一个自定义的segue,这与此代码:Cusom UIStoryboardSegue back动画不能按预期工作

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]; 

问题是,当在一个视图后退按钮点击赛格瑞动画是默认的,它没有被改变(它应该是从右到左,而是它显示从左到右至极是默认的) 那么我应该如何改回动画呢?

+0

您将不得不添加自己的后退按钮,然后编写您自己的动画,就像您为推送所做的那样。我不知道为什么你会希望后退按钮动画改变 - 它只是实现默认的popViewController:animated:代码。 – rdelmar

+0

后退按钮自动添加托架导航,我无法控制它。我相信它应该工作的原因是我重写UIStoryboardSegue。 – Ocelot

回答

0

实际上这是我的错,UIStoryboardSegue无法控制背部动画,因为它属于uiviewcontroller流行动画!为了我的目的,我应该为我的场景编写自定义的流行动画。