iPhoneアプリ開発Tweet※本記事は、旧ブログからの再掲です。UINavigationControllerとUITabBarControllerの両方を使用している場合の回転制御についてです。新しく下記3つのメソッドが追加されました。回転に対応する場合にはYES、しない場合にはNOを返却します。shouldAutorotateでYESの場合に、supportedInterfaceOrientationsメソッドが呼ばれ、どの向きに対応するかを返却します。preferredInterfaceOrientationForPresentationメソッドでは、複数の向きに対応している場合に初期表示画面の向きを指定します。UITabBarControllerとUINavigationControllerを使用している場合、iOS6.0以降では回転を検出すると、UITabBarControllerに通知が来ます。そのため、各ビューで回転するかどうかを制御したい場合には、その配下のビューへ通知し結果を受け取るようにします。UITabBarControllerとUINavigationControllerはサブクラス化してオーバーライドする方法とカテゴリを追加する方法があります。今回はカテゴリを追加する方法です。■UITabBarControllerクラスにカテゴリ(AutoRotate)を追加selectedViewControllerプロパティより、現在選択されているタブアイテムのコントローラーが取得できます。そのコントローラーの指定に従います。preferredInterfaceOrientationForPresentation];}@end■UINavigationControllerクラスにカテゴリ(AutoRotate)を追加visibleViewControllerプロパティより、現在表示されているビューを取得できます。そのビューの指定に従います。各ビューコントローラで画面回転に対応するか否か、どの向きに対応するかを指定できます。コメントを受け付けていません。BluChic当サイトでは閲覧の追跡のためにGoogle・AmazonのサービスによりCookieが使用されています。サイトの閲覧を続けた場合Cookieの使用に同意したことになります。