UINavigationControllerで自動回転する
-
10-07-2019 - |
質問
UINavigationControllerにあるビューを回転させる方法が少しわかりません。
UINavigationControllerオブジェクトをオーバーライドする独自のものでオーバーライドしました:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {return YES; }
コントローラーのスタックに1つのビューがあり、そのビューは2つのビューを持つxibからロードされます。ポートレートからランドスケープに切り替えたいです。通常、ビュー自体のnibファイル内からビューを変更することでこれを処理します。 Navigation Controllerまたはビューコード内に回転コードを実装する必要がありますか?
- (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
そのwillAnimateコードは、ビュー自体で使用するのに慣れているものですが、ビューが変更されているのをまだ見ていません。それを変更するか、Navigation Controllerで同じメソッドをオーバーライドし、そこでビューを切り替えます。
提案はありますか?これまで実際にこれをやったことがなく、TabViewControllersとNavigationControllersが両方ともデフォルトでのみポートレートモードであることがわかりました。
解決
Navigation ControllerのRootViewを変更しようとしたため、ビューを変更できなかったことが判明しました。これを回避するには、Navigationスタックのルートスポットに表示されない独自の擬似ルートビューコントローラーを配置します。これを説明するためにいくつかのナビゲーションコントロールを無効にして、機能が同じようになり、必要に応じて希望のルートビューを変更できるようにします。
正しい方向へのスタートはこのリンクで見つけることができます:
http://starterstep.wordpress.com/2009/03 / 05 / inuing-a-uinavigationcontroller ’ s-root-view-controller /