カスタム UIStoryboardSegue を作成しました。
私の CustomSegue.m ファイル内の唯一のコードは次のとおりです。
-(void) perform {
UIViewController* sourceViewController = (UIViewController *) self.sourceViewController;
UIViewController* destinationViewController = (UIViewController *) self.destinationViewController;
UIWindow* window = UIApplication.sharedApplication.keyWindow;
window.rootViewController = destinationViewController;
window.rootViewController = sourceViewController;
[UIView transitionWithView: sourceViewController.view.window
duration: 0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations: ^{window.rootViewController = destinationViewController;}
completion: ^(BOOL finished) {}
];
}
ストーリーボードを設定して、最初のボタンが 2 番目のボタンにリンクされた 2 つの UIViewController だけを持つようにすると、すべてが計画どおりに機能します。左トランジションからのフリップがあります。
しかし: 最初の UIViewController の前に UINavigationController を配置すると、セグエは左からのフリップを行わずに 2 番目のビュー コントローラーを表示するようになりました。
何が起こっている?遷移がナビゲーション コントローラーで機能しないのはなぜですか?
ご協力いただきありがとうございます!
(興味がある場合は、カスタム セグエを使用している理由は、いくつかの紹介ページの後にマスター詳細ビューを表示できるようにするためです。この Stackoverflow の回答に触発されています。)