1. ホーム
  2. ipad

[解決済み] サポートされている方向がアプリケーションと共通の方向でなく、shouldAutorotateがYESを返しています。

2023-01-27 05:40:57

質問

私のアプリ(iPad;iOS 6)はランドスケープのみのアプリですが、フォトライブラリを表示するためにUIPopoverControllerを使用しようとすると、このエラーが発生します。 Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES. 多くのコードを変更してみましたが、うまくいきませんでした。

どのように解決するのですか?

IOS6では、3箇所でインターフェースの向きをサポートしていますね。

  1. .plist (またはターゲット サマリー画面)
  2. あなたのUIApplicationDelegate
  3. 表示されているUIViewController

このエラーが発生した場合、UIPopover で読み込んでいるビューがポートレート モードしかサポートしていないことが原因である可能性が高いです。 これは、Game Center、iAd、または独自のビューが原因である可能性があります。

独自のビューの場合、UIViewControllerでsupportedInterfaceOrientationsをオーバーライドすることで修正できます。

- (NSUInteger) supportedInterfaceOrientations
{
     //Because your app is only landscape, your view controller for the view in your
     // popover needs to support only landscape
     return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

もしそれがあなた自身のビューでないなら(iPhoneのGameCenterなど)、あなたの.plistがポートレートモードをサポートしていることを確認する必要があります。 また、UIApplicationDelegateがポートレートモードで表示されるビューをサポートしていることを確認する必要があります。 これは、.plist を編集し、UIApplicationDelegate の supportedInterfaceOrientation をオーバーライドすることによって行うことができます。

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}