UIViewController
ユーザー入力に基づいて変化する可能性のある状態に基づいて、さまざまなインターフェイスの向きをサポートする を考えてみます。
私の知るsupportedInterfaceOrientations
限り、デバイスの向きが変わったときにのみ呼び出されます。デバイスの向きが変わっていない場合でも、サポートされているインターフェイスの向きについて再度問い合わせる必要があることをアプリケーションに伝える方法はありますか?
UIViewController
ユーザー入力に基づいて変化する可能性のある状態に基づいて、さまざまなインターフェイスの向きをサポートする を考えてみます。
私の知るsupportedInterfaceOrientations
限り、デバイスの向きが変わったときにのみ呼び出されます。デバイスの向きが変わっていない場合でも、サポートされているインターフェイスの向きについて再度問い合わせる必要があることをアプリケーションに伝える方法はありますか?
あなたは正しいです。基本的に、向きの変更に対応することはできますが、強制することはできません。しかし、すべての方向コールバックを通過するようにアプリケーションをだますために使用できるトリックがあります。
アプリの開始時に作成し、ウィンドウの rootViewController として設定した ViewController が必要です。そのViewControllerのビューをそのスーパービュー(ウィンドウ)から削除し、すぐにサブビューとしてウィンドウに再度追加します。表示されているビュー階層全体が変更されたため、アプリはすべての向きのコールバックを再度実行します。
しかし、私があなただったら、これにあまり頼りません。これが起こるのは論理的ですが、Apple がいつこれを変更するかはわかりません。そういえば、iOS 6 ではまだテストしていません。iOS 4 および 5 で動作します。