2013-04-12 55 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流行動畫!爲了我的目的,我應該爲我的場景編寫自定義的流行動畫。