Mac*_*n13 2 mpmovieplayercontroller ipad uiinterfaceorientation ios
因此,我们构建了一个仅支持横向定位的iPad应用程序.通过在plist中设置Supported interface orientations (iPad)to来强制执行此操作Landscape (left/right home button).所有的UIViewControllers实现shouldAutorotateToInterfaceOrientation:如下:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,应用程序被锁定在横向方向.现在我们已经MPMoviePlayerController嵌入了我们的一个观点.当用户使用此电影全屏时,他可以旋转到肖像.电影播放器似乎绕过了我们所有的景观设置.这对我来说很好,但是当用户done在纵向方向上点击按钮时,我们所有人UIViewControllers都在肖像中并且看起来很可怕!
用户必须旋转iPad以使自己风景自如,以使事物再次看起来很好,然后将无法按预期旋转回到肖像.
那么为什么我的视图轮换为纵向,即使所有人都shouldAutorotateToInterfaceOrientation告诉iOS不要旋转为肖像?我怎样才能确保电影播放器不会旋转我的观点?
如果您的解决方案还将电影播放器本身锁定在风景中,那对我来说没问题.只要我的意见没有轮换,我很高兴!:)
那么,为什么我的视图轮换为纵向,即使所有的应该都是指定的东西,以便告诉iOS不要旋转到肖像?我怎样才能确保电影播放器不会旋转我的观点?
如果您的解决方案还将电影播放器本身锁定在风景中,那对我来说没问题.只要我的意见没有轮换,那对我来说没问题!:)
使用此视图层次结构时,我遇到了这个问题:
+------------------------+ +-------------------+
| | | |
| UINavigationController +->| Some Intermediate |
| | | View Controllers |
+------------------------+ | |
+---------------+---+
|
v
+--------------------------+
| MPMoviePlayerController |
| (embed) |
+--------------------------+
Run Code Online (Sandbox Code Playgroud)
所有中级视图控制器都被锁定为横向方向,因此除非MPMoviePlayerController全屏显示(导致与OP完全相同的问题),否则App永远不会处于纵向状态.
解决方案是通过创建覆盖的子类将UINavigationController锁定到Landscape方向shouldAutorotateToInterfaceOrientation.这样MPMoviePlayerController就不再旋转到纵向方向.我怀疑当进入全屏时它会将自己添加到mainWindow的rootViewController中,在我的例子中是UINavigationController(或者更确切地说是我的子类).
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3519 次 |
| 最近记录: |