2012-12-06 6 views
5

別のView Controllerをプッシュすると、ナビゲーションビューコントローラの「スライドを右から左へ」のトランジションを変更したいと思います。私はストーリーボードでオプションを見つけましたが、うまくいかないようです。トランジションスタイルはまだ同じです。iOS push segue transition

transition

だから、私の質問があり、それはプッシュスタイルを作ることが可能である:遷移はモーダルスタイルのセグエのためのものであるように見えますが、私は、これを見つけたストーリーボードで先ビュー・コントローラをクリックする 違った見方へのセグの移行?そしてもしそうなら、どうですか?

答えて

2

プッシュ遷移を使用するには、ビューを接続するUINavigationControllerを使用する必要があります。これらはすべて、1つのオフトランジションのモーダルトランジションオプションです。

同じトークンでは、少なくともストーリーボードでは、既にUINavigationControllerを使用している場合は、プッシュ以外は使用できません。

この制限を回避する最も簡単な方法は、コードで行い、UIView AnimationまたはCAAnimationでラップされたアニメーションなしでプッシュをラップすることです。

6

カスタムSegue内でCATransitionを使用すると、あらゆる種類のトランジションを達成できます。サンプルコードです

-(void)perform { 

__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController]; 
__block 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];  


} 

あなたは詳細http://blog.jambura.com/2012/07/05/custom-segue-animation-left-to-right-using-catransition/

+0

グレート回答仲間のために、このリンクをご覧ください。...私は:-)長い時間のためにそれを見て –