現在、iPhone アプリケーションにはポートレート モードしかありません。アプリケーションの 1 つのコントローラーでランドスケープ モードを許可したいのですが、残念ながらそれを機能させることができません。
plist ファイルに次の設定があります。
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
</array>
そして、これらのメソッドをコントローラーに実装しました。
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
アプリでナビゲーションコントローラーを使用しているので、それが問題である可能性があることに気づきました。をサブクラス化し、上記と同じ方法で を再度UINavigationController
実装しました。もちろん、サブクラス化されたナビゲーションコントローラーを使用して、回転できるコントローラーを表示します。また、カテゴリごとにナビゲーションコントローラーのメソッドを上書きしようとしましたが、それも機能しません。shouldAutorotateToInterfaceOrientation
supportedInterfaceOrientations
shouldAutorotate
私は最初からアプリケーションに取り組んでおらず、コードを継承しています。ランドスケープをグローバルに制限する方法がいくつかある場合、それは私の場合かもしれません。テストには iPhone 6.0 シミュレーターを使用しますが、展開ターゲットは 5.0 です。ヒント/ヘルプに感謝します。