私のルート ビュー コントローラーの実装はsupportedInterfaceOrientationsほとんど常に を返しますがUIInterfaceOrientationMaskAll、それが を返すエッジ ケースが 1 つありますUIInterfaceOrientationMaskLandscape。
ユーザーがデバイスを回転させた場合、これは機能しています。ただし、デバイスが縦向きモードで保持されているsupportedInterfaceOrientations場合、ユーザーが手動でデバイスを回転させない限り、メソッドが呼び出されることはありません。
このメソッドの戻り値が変更されたことをプログラムでシステムに伝えるにはどうすればよいですか?
ドキュメントによると、私は呼び出すことができるはずですが、[UIViewController attemptRotationToDeviceOrientation]これは何の効果もありません(supportedInterfaceOrientations呼び出されず、画面が回転しません)。
この問題を解決するために他の人が投稿したさまざまな回避策を見つけましたが、私のテストではどれも機能しません。iOS 5.0 では動作したかもしれませんが、iOS 6.0 では動作しなかったのではないかと思います。
YESルート ビュー コントローラーのshouldAutorotateメソッドに戻ります。