kCATransitionFromRight を実行する 1 つと kCATransitionFromLeft を実行する 2 つの異なる CATranistion 関数 (私が作成した) のいずれかを呼び出す必要があります。完了したら、関数を結合します。
ただし、ナビゲーション スタックには 1 ビューの深さのビューがあります。スタックの上または下のビューからビューに入るか離れるかに応じて、左または右のいずれかを使用する必要があります。
First view => problem view, transition left.
Problem view => first view, transition right.
Problem view => third view, transition left.
Third view <= problem view, transition right.
現在、viewWillAppear で関数を呼び出しています。
ただし、使用する方向を関数に伝える方法がわかりません。
app デリゲート変数、singleton、または nsuserdefault 設定を使用できることはわかっていますが、考えもしなかったより適切なアプローチがあるかどうか疑問に思いました。
戻るボタンなどで関数を呼び出すことができることはわかっていますが、viewWillAppear 内での呼び出しはこれを上書きします。
+ (void)transitionFromRight:(UIViewController*)view {
CATransition *navTransition = [CATransition animation];
navTransition.duration = 0.65;
navTransition.timingFunction = [CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[navTransition setType:kCATransitionReveal];
[navTransition setSubtype:kCATransitionFromRight];
[view.navigationController.navigationBar.layer
addAnimation:navTransition forKey:nil];
}