iOS 7のカスタムトランジション

AnimationController

<UIViewControllerAnimatedTransitioning>プロトコルを採用したクラスを用意し、下記メソッドにアニメーションを記述する。


- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext


- (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext


モーダル

モーダル表示のアニメーションをカスタマイズする方法

  1. 遷移元ViewControllreにUIViewControllerTransitioningDelegateメソッドを実装し、AnimationControllerを返す

    – animationControllerForPresentedController:presentingController:sourceController:
    – animationControllerForDismissedController:

  2. 遷移先ViewControllreの「transitioningDelegate」プロパティにデリゲートオブジェクトを設定する

    
    toVC.transitioningDelegate = self;
    
    

  3. 遷移先ViewControllreのmodalPresentationStyleプロパティにUIModalPresentationCustomを指定する

    
    toVC.modalPresentationStyle = UIModalPresentationCustom;
    
    

  4. presentViewController:animated:completion:を呼ぶ


TabBarController

タブ切り替え時の実装方法

  1. TabBarControllerDlegateの下記メソッドを実装し、AnimationControllerを返す
    
    tabBarController:animationControllerForTransitionFromViewController:toViewController:
    
    

UINavigationController

UINavigationControllerのPushやPopの時のアニメーションをカスタマイズする方法

  1. UINavigationControllerDelegateの下記メソッドを実装し、AnimationControllerを返す
    
     navigationController:animationControllerForOperation:fromViewController:toViewController: