0

アプリケーションでランドスケープ モードのみをサポートしたいと考えています。私は以下を設定しました:

  1. アプリケーション内のすべてのビュー コントローラーの向きが横に設定されています。一部のView Controllerはストーリーボードにありますが、カップルはストーリーボードにありません
  2. すべての viewControllerのshouldAutorotateToInterfaceOrientationメソッドは、LandscapeLeft と LandscapeRight の向きで TRUE を返し、それ以外の場合は FALSE を返すように設定されています。
  3. info.plist でサポートされている向きも横向きに設定されています

アプリケーションを実行すると、すべてが期待どおりに機能し、アプリはランドスケープ モデルで起動します。

ただし、状況によっては、アプリケーションの開始時にモーダルをスローする必要があります。次のコードを使用して、rootviewcontrollerからモデルを開きます。UINavigationController

    AskInfoViewController *askInfo = [[AskInfoViewController alloc] init];
    [askInfo setModalPresentationStyle:UIModalPresentationFormSheet];
    [askInfo setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:askInfo animated:YES];

これらの状況では、モーダルは問題なく開きますが、モーダルの背景は縦長モードになっています。

アプリ内のすべてのビューが、モーダルの有無にかかわらず常にランドスケープ モデルであることを確認する方法はありますか?

4

1 に答える 1

0

だから私はついにそれを機能させる方法を見つけました。viewDidLoadメソッドでモーダルを開く代わりに、 で開きviewDidAppearます。

于 2013-02-06T07:47:36.357 に答える