3

私のアプリケーションでは、ViewControllers.

  1. ViewController1横向きのみをサポートする必要があります。
  2. ViewController2横向き + 縦向きをサポートする必要があります。

Summury プロジェクトでは、次のようなすべての向きを有効にします。

プロジェクトのオリエンテーションのまとめ

だから、私はこのコードをに挿入しますViewController1

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

そして、このコードを次の場所に挿入しますViewController2

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

問題はViewController1、縦向きでも回転することです (横向きのみをサポートする必要があります)。

何か案が?

本当にありがとうございました!

4

2 に答える 2

1

あなたの viewController は rootViewController ですか? そうでない場合は、それが問題かもしれません。

rootViewController が UINavigationController の場合、それらのメッセージが topViewController に転送されないことを知っておく必要があります。したがって、これがあなたのケースである場合は、topViewController に転送するために、これらの新しいメソッドをオーバーライドする UINavigationController のサブクラスを使用することをお勧めします。

于 2012-10-06T14:25:34.587 に答える
0

iOS 6 より前では、これは正常に動作します

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientatio n { if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) return YES;

else return NO; }

しかしiOS 6では非推奨です

ここで、必要な方向を指定し、プレゼンテーションの方向を選択する必要があります

あなたは書くべきです

- (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; }

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationLandscapeRight; }

それが役に立てば幸い

幸運を

于 2012-10-06T16:46:24.977 に答える