私は多くの答えを読んだことがありますが、iOS7でオートローテーションを行うことはできません。iOS7の1つのビューコントローラのオートローテーションの処理
私は、回転するために1つのビューコントローラしか必要ないので、私はInfo.plistに回転の設定をしたくありません。
私はアップルのドキュメントを理解しているので、1つのView Controllerで2つのメソッドをオーバーライドするだけで、グローバルローテーション設定(Info.plist)を上書きできます。 Info.plistのは、唯一の肖像画を許可するように設定されている、と私のビューコントローラには、次のメソッドを実装します。
- (NSUInteger)supportedInterfaceOrientations
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (BOOL)shouldAutorotate
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return true;
}
は私が回転すると、それらのNSLog文を見ているが、何も回転しません。
適切な回転設定でInfo.plistを設定すると、私のビューは回転しますが、私はView Controllerに依存していません。
重要であるかどうかわかりませんが、回転しようとしているビューは、自動レイアウトを使用している.xibからのものです。
また、私のViewControllerはモーダルに表示されており、ナビゲーションコントローラに含まれています。私はそれだけでビューコントローラを提示しようとしたが、それは動作しません。また、adding a category to UINavigationControllerを試して、topViewControllerからオートローテーション指示を取得しました。
同じ問題があります。さらに、私のアプリはiOS5と互換性があるので、supportedInterfaceOrientationsを使用することはできません。私は他の2つの関数、shouldAutorotate(NOを返す)とshouldAutorotateToInterfaceOrientation(deprecated)を使用しています。彼らも呼ばれていない!それは出る方法がないようです! –
私は最終的にあきらめました...私のxibを見直して、やや妥当なやり方で見えるように見直しました...--( –