質問: Xcode6,Objective-cで縦画面と横画面をボタンで切り替えられるアプリを作っています。 (縦画面と横画面ではデザインも機能も異なります。) 縦画面時はホームボタン下(Portrait)で固定し、 横画面時は回転に伴い、ホームボタン右(LandScapeRight)と ホームボタン左(LandScapeLeft)の回転を許可したいです。 デバイスの回転はshouldAutorotateで管理しています。 ``` @implementation UINavigationController (rotateControl) - (NSUInteger)supportedInterfaceOrientations { return [self.visibleViewController supportedInterfaceOrientations]; } - (BOOL)shouldAutorotate { return YES; } @end ``` 縦画面時はPortraitで固定しています。 ``` - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } ``` 横画面時はLandscapeで固定しています。 ``` - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; } ``` 横画面時はステータスバー(デバイス)の向きに伴い 横画面の上下回転をさせたいので アプリケーションの環境設定のDevice Orientationに "Landscape Left"と"Landscape Right"にチェックをつけています。 !画像の説明をここに入力 しかし、iPhone6Plus(iOS8)の実機で動かすと 横画面時に、180度回転させると、 ステータスバーの位置は常に上にくるように移動するのですが、 それに伴いUIViewが回転せず、固定されたままになってしまいます。 (iOS7のiPhone5実機、iPhone6およびiPhone6Plusのシミュレータでは期待動作です。) ステータスバー(デバイス)の回転に伴い 横画面の上下回転をさせるにはどうしたらよろしいでしょうか・・・ ここ何日も詰まっていて困っています・・・ よろしくお願いいたします。
回答: プログラムで操作する以前に、アプリケーションの環境設定で、180度回転を有効にしましょう。 !画像の説明をここに入力 「Device Orientation」が、デフォルトでは**Upside Down**が無効になっているので、チェックを入れて、有効にしましょう。