4

modalUIViewControllerの親は自動回転しますが、モーダル VC がアップしているときは、縦向きに表示するだけで、回転できないようにしたいです。shouldAutorotateモーダルVCで...から単純にNOを返そうとしましたが、喜びはありません。iOS 5 以降に対応。

どんな助けでも大歓迎です。

4

3 に答える 3

11

基本的に、任意のコンテナコントローラー(つまりUINavigationController)でモーダルコントローラーを提示する場合、自動回転メソッドはデフォルトでYESを返します。したがって、UINavigation Controllerのサブクラスを作成し、そこでAutorotationを廃止する必要があります。

iOS 5の使用方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

    return (toInterfaceOrientation == UIInterfaceOrientationPortrait) : self.enableRotations;
}

iOS 6の場合:

- (NSUInteger)supportedInterfaceOrientations {

    switch ([UIDevice currentDevice].userInterfaceIdiom) {

        case UIUserInterfaceIdiomPad:   return UIInterfaceOrientationMaskAll;
        case UIUserInterfaceIdiomPhone: return UIInterfaceOrientationMaskPortrait;
    }
}

- (BOOL)shouldAutorotate {

    return NO;
}
于 2012-12-14T13:34:07.300 に答える
0

その新しいコントローラーを新しいナビゲーションコントローラーに提示する必要があります。これにより、問題が解決します

于 2012-12-14T12:57:58.077 に答える
0

実行可能ですが、実行する前によく考えてください。

ユーザーとして;

  • アプリを起動して横向きで使用しています。
  • イベントをトリガーします (例: ボタンを押す)。
  • ポートレートであるビューを参照してください。
  • 電話を回転させ、縦向きに見てください。
  • モーダル ビューを閉じます。
  • 再び横向きのビューを取得します。
  • 電話をもう一度回転させる必要があります

使い勝手が悪い…

于 2012-12-14T10:48:26.757 に答える