アプリケーションでランドスケープ モードのみをサポートしたいと考えています。私は以下を設定しました:
- アプリケーション内のすべてのビュー コントローラーの向きが横に設定されています。一部のView Controllerはストーリーボードにありますが、カップルはストーリーボードにありません
- すべての viewControllerの
shouldAutorotateToInterfaceOrientation
メソッドは、LandscapeLeft と LandscapeRight の向きで TRUE を返し、それ以外の場合は FALSE を返すように設定されています。 - info.plist でサポートされている向きも横向きに設定されています
アプリケーションを実行すると、すべてが期待どおりに機能し、アプリはランドスケープ モデルで起動します。
ただし、状況によっては、アプリケーションの開始時にモーダルをスローする必要があります。次のコードを使用して、rootviewcontroller
からモデルを開きます。UINavigationController
AskInfoViewController *askInfo = [[AskInfoViewController alloc] init];
[askInfo setModalPresentationStyle:UIModalPresentationFormSheet];
[askInfo setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:askInfo animated:YES];
これらの状況では、モーダルは問題なく開きますが、モーダルの背景は縦長モードになっています。
アプリ内のすべてのビューが、モーダルの有無にかかわらず常にランドスケープ モデルであることを確認する方法はありますか?