ああ!半日を費やし、問題は解決しました!彼は彼。
上記のドキュメントにあるように、これは本当にそれです!コアポイントは次のとおりです。
より多くの責任は、アプリとアプリデリゲートに移動することです。現在、iOSコンテナ(UINavigationControllerなど)は、自動回転する必要があるかどうかを判断するために子に相談しません。デフォルトでは、アプリとビューコントローラーでサポートされているインターフェイスの向きは、iPadイディオムの場合はUIInterfaceOrientationMaskAllに、iPhoneイディオムの場合はUIInterfaceOrientationMaskAllButUpsideDownに設定されています。
したがって、ルートコントローラーで何かが変更されると、システムはアプリのデリゲートに「では、私たちは何ですか?回転しているかどうか?」と尋ねます。
「回転」の場合:
サポートされている方向は、このViewControllerがshouldAutorotateメソッドからYESを返した場合にのみ取得されます
次に、システムはアプリの代理人に
- (NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return ...;
}
それは本当に簡単です。
ポートレートやランドスケープなどをいつ許可するかを決定する方法はあなた次第です。ルートコントローラーのテストは、いくつかの点で機能しませんでしたが、これは機能します。
- (NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return self.fullScreenVideoIsPlaying ?
UIInterfaceOrientationMaskAllButUpsideDown :
UIInterfaceOrientationMaskPortrait;
}
プロパティ「fullScreenVideoIsPlaying」は、必要なときに手動で設定します。
注意すべき他の唯一の重要なことは列挙型です。それがドキュメントで言うように...(iPad / iPhoneのものの上を注意深く読んでください)。だから、あなたは必要に応じてそれらで遊ぶことができます。
もう1つの小さなことは、プレーヤーコントローラーを閉じた後のバグのある動作でした。それが向きを変えなかった時がありました、しかしそれは一度そしてある奇妙な方法で、そしてシミュレーターでのみ起こりました(もちろんiOS6のみ)。そのため、予期せず発生し、アプリの他の要素をすばやくクリックした後、通常の方向に回転したため、反応することさえできませんでした。ですから、よくわかりません-シミュレーターの作業に多少の遅れがあるかもしれません(または、実際にはバグです:))。
幸運を!