0

UINavigationControllerにあるビューを回転させる方法が少しわかりません。

UINavigationControllerオブジェクトを、以下をオーバーライドする独自のオブジェクトの1つでオーバーライドしました。

  • (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {return YES; }

コントローラのスタックに1つのビューがあり、そのビューは2つのビューを含むxibからロードされます。縦向きから横向きに切り替えたい。通常、ビュー自体のnibファイル内からビューを変更することでこれを処理します。ナビゲーションコントローラー内に回転コードを実装する必要がありますか、それともビューコード内に実装する必要がありますか?

  • (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

そのwillAnimateコードは、ビュー自体で使用するのに慣れているものですが、ビューが変更されているのがまだ表示されていません。NavigationControllerのビューにアクセスして、それを変更する必要があるのではないかと考えています。または、Navigation Controllerで同じメソッドをオーバーライドして、そこでビューを切り替えます。

助言がありますか?私はこれまで実際にこれを行ったことがなく、TabViewControllersとNavigationControllersの両方がデフォルトでのみポートレートモードであることがわかりました。

4

1 に答える 1

0

ナビゲーションコントローラーのRootViewを変更しようとしたため、ビューを変更できなかったことがわかりました。これを回避するには、ナビゲーションスタックのルートスポットに表示されない独自の疑似ルートビューコントローラーを配置しました。これを説明するために、いくつかのナビゲーションコントロールを上書きして、機能が同じように継続し、必要に応じて、認識されるルートビューを変更できるようにしました。

正しい方向へのスタートはこのリンクで見つけることができます:

http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller’s-root-view-controller /

于 2009-07-06T17:01:57.260 に答える