iOSバージョン5および6をサポートするiPadアプリを作成しています。アプリケーションの開始時に縦向きモードでのみ表示されるView Controllerがあります。後で、すべてのインターフェイスの向きをサポートするView Controllerがあります。
iOS 5 または iOS 6 で動作するようにしました。意味: iOS 6 では、View Controller でサポートされているインターフェイスの向きは、info.plist ファイルでも設定されている場合にのみ機能します。したがって、info.plist ファイルですべてのインターフェイスの向きを設定する必要があります。iOS 6 ではすべて動作しますが、iOS 5 では、アプリの起動前に iPad が縦向きの場合、起動時に動作します。ただし、iPad が横向きの場合、アプリは正しい方法で起動しますが、別の回転を手動で実行するまで通知センターは正しくありません。
別の iOS バージョンの info.plist ファイルに他のキーを入れる方法はありますか? それが私が考えることができる唯一の解決策です。info.plist ファイルの向きとして縦向きのみを設定すると、iOS 5 で動作するためです。
編集:
さて、私はそれを少し混乱させて説明しました。shouldAutorotate と supportedInterfaceOrientations: のメソッドを使用して、iOS 6 で完全に動作するようにしました。私のルート ビュー コントローラーはポートレート インターフェイスの向きのみをサポートしており、info.plist ではすべてのインターフェイスの向きを選択する必要がありました。
問題:
iPad を横向きにして iOS 5 でアプリを起動すると、次のようになります。
ルート ビュー コントローラーはポートレート モードですが、アプリはランドスケープ モードのように動作します。つまり、横から通知センターにアクセスできます。
私が考えることができる私の解決策:
問題は、info.plist ファイルですべてのインターフェイスの向きを設定しなければならなかったことです。つまり、iOS 5 では、メソッド shouldAutorotateToInterfaceOrientation: に考えられる向きを 1 つ入れただけでも、アプリはランドスケープ モード (上記で説明した動作) で起動しようとします。
したがって、2つの解決策があります。info.plistファイルで特定のインターフェイスの向きが選択されていない場合、iOS 6でアプリを回転させるか、iOS 5の回転を「変更」できます。
あなたが私を助けてくれることを願っています。