0

アプリ内のさまざまな viewController にさまざまなルールを設定したいと考えています (Target-Summary で定義できるように) すべてのビューにまたがる単一のルールではありません。

たとえば、私はいくつかのビューを持っています。最初のいくつかのビューを縦向きのビューでのみ表示したいのですが、最後のビューでは、ユーザーがプロトレイトとランドスケープの間で変更できるようにしたいと考えています...どうすればこれを行うことができるかを考えていました.

また、ユーザーが横向きのときにビューに移動し、縦向きにする必要があるときにビューが横向きに表示され、ユーザーがデバイスを回転させるまで変更されないという問題を読みました。可能であればこれを避けたい...

だから私の質問は、ユーザーがどのビューにいるかに応じて、異なる UIViewController Orientations を許可するにはどうすればよいかということです.

4

1 に答える 1

1

これは、iOS 5 と iOS 6 のどちらをターゲットにするかによって異なります。
iOS 5:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
   if ((orientation == UIInterfaceOrientationPortrait) ||
       (orientation == UIInterfaceOrientationLandscapeLeft))
       return YES;

       return NO;
}

iOS6:

アプリの概要でサポートされているデフォルトの向きを設定してから、異なるものにしたい VC で設定します。

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;
}

これに関するAppleのドキュメントはこちら

詳細については、次の質問を参照してください。

iOS 6 で shouldAutorotateToInterfaceOrientation が呼び出されない

shouldAutorotateToInterfaceOrientation が iOS 6 で機能しない

于 2013-03-13T02:11:23.287 に答える