このコードを使用して、ユーザーがビデオの視聴を終了したときに向きを強制的に縦に戻しました (これにより、横向きモードでの表示が可能になります)。その後、ビデオ ビュー コントローラーをナビゲーション コントローラーから外します。
//set statusbar to the desired rotation position
[[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationPortrait animated:NO];
//present/dismiss viewcontroller in order to activate rotating.
UIViewController *mVC = [[[UIViewController alloc] init] autorelease];
[self presentModalViewController:mVC animated:NO];
[self dismissModalViewControllerAnimated:NO];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
これは まで完全に機能しましたiOS 5.1.1
。別の投稿を読んだ後、新しい present/dismiss メソッドを使用しようとしましたが、それらは今すぐ使用する必要があります。
[self presentViewController:mVC animated:NO completion:NULL];
[self dismissViewControllerAnimated:NO completion:NULL];
問題は、それがまったく機能しないことです。ビデオ ビューアーを横向きに回転させてからポップすると、設定ビュー (テーブル ビュー コントローラー) が戻ってきますが、横向きモードでも表示されます。
ここからのヒントも試しました
「このsetStatusBarOrientation:animated:
メソッドは完全に廃止されたわけではありません。ただしsupportedInterfaceOrientations
、最上位のフル スクリーン ビュー コントローラのメソッドが 0 を返す場合にのみ機能します。これにより、ステータス バーの向きが一貫していることを確認する責任が発信者の手に委ねられます。」
supportedInterfaceOrientations
そのため、(上記の最初のコード ブロックを呼び出す前に) 強制するフラグを設定して実験しましたreturn 0
が、どちらも機能しません。
誰かがこれに対する解決策を持っていますか? お時間とご尽力いただきありがとうございます。