当用户完成观看视频(它允许以横向模式查看)时,我使用此代码强制将方向更改回纵向,然后将视频视图控制器从导航控制器中弹出:
//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
。在另一篇文章中读到现在应该使用这些方法后,我什至尝试使用新的呈现/解雇方法:
[self presentViewController:mVC animated:NO completion:NULL];
[self dismissViewControllerAnimated:NO completion:NULL];
问题是它根本不起作用。在我将视频查看器旋转到横向然后弹出它之后,我的设置视图(表格视图控制器)又回来了,但也处于横向模式。
我什至尝试过这里的提示
“该setStatusBarOrientation:animated:
方法并未完全弃用。但它现在仅supportedInterfaceOrientations
在最顶层全屏视图控制器的方法返回 0 时才有效。这将确保状态栏方向一致的责任交到调用者手中。”
所以我尝试设置一个标志来强制supportedInterfaceOrientations
(return 0
在调用上面的第一个代码块之前),但它也不起作用。
有人对此有解决方案吗?感谢您的时间和精力。