iOS 6.1 および 7.0 で作業しています。挙動はどちらも同じです。ルートView ControllerはUIVeiwController
. UINavigationViewController
アプリで表示されるすべてのコントローラーを管理するプロパティがあります。プッシュされた各コントローラーの正しい向きを取得するために、ローテーション メソッドをサブクラス化UINavigationController
し、オーバーロードしました。shouldAutorotate
supportedInterface
私が欲しいもの:ナビゲーション 3 コントローラーを押し込みます。2 番目のコントローラーは縦向きのみにする必要があります。
私が得るもの:メソッドがポートレートモードを返すにもかかわらず、2番目のコントローラーを押すと、まだランドスケープモードになりsupportedInterfaceOrientation
ます。次に、3番目のコントローラーを押して、シミュレーターまたはデバイスをランドスケープモードにし、2番目のコントローラーにポップします。これが最も興味深いものです画面から…
私の推測では、Apple のドキュメントでは、ほとんどのトップ ビュー コントローラーのみが回転について通知されると述べているため、ナビゲーション コントローラーをルートにすると、3 番目のコントローラーから 2 番目のコントローラーにポップすると正しく動作しますが、1 番目から 2 番目にプッシュするときにはまだ動作しません。ナビゲーションコントローラーがルートビューコントローラーのプロパティにすぎない場合、私の構造でこの問題を解決する必要がある方法。
プロジェクトへのリンクは次のとおりですhttps://github.com/Trubianov/Navigation.git