7

はい、私はすでに答えを探しました。フェードトランジションのオプションを提供せず、フリップまたはカールのみを提供するソリューションを除いて、どのソリューションも機能しません。

このような:

methodname
    configure animation
    [self.navigationController popViewControllerAnimated:NO];

どのようなトランジション アニメーション構成を試しても、通常の 1 行ポップのみを使用する場合と目に見える違いはありません。に変更すると…Animated:YES];、標準の pop アニメーションが表示されますが、壊れた構成から何か奇妙なことが起こっている可能性があります。

だから私の質問はこれです: どうpopすればa を行うことができCrossDissolveますか? ナビゲーションコントローラーでも可能ですか?

モーダル ビューを使用すると、必要なデフォルトのアニメーションが得られ、ビュー スタックを簡単に管理できますが、そうしたくありません。

4

3 に答える 3

23

このタイプの移行には、システムが設計された方法であるモーダル ビュー コントローラーを強くお勧めします。

しかし、どうしてもナビゲーション コントローラーを使用したい場合は、いくらか醜い方法があります。

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];

CATransition *transition = [CATransition animation];
[transition setType:kCATransitionFade];
[self.navigationController.view.layer addAnimation:transition forKey:@"someAnimation"];

[self.navigationController popViewControllerAnimated:YES];
[CATransaction commit];

は、CATransactionすべての標準アニメーションを無効にします。ビューがスワップされると、ナビゲーション コントローラー レイヤーにフェード トランジションが追加されます (このCATransition場合、ポップされたビューコントローラー ビューが削除されます)。

于 2012-05-11T14:38:31.317 に答える