我有一个通过 MPMoviePlayerViewController 播放视频的应用程序,该应用程序在 UITableViewController 上执行选择操作后呈现,该 UITableViewController 嵌入在 UINavigationController 中,而 UINavigationController 嵌入在 UITabBarController 中。
TabBar 控制器 > 导航控制器 > 表视图控制器 * MPMoviePlayerViewController
在 iOS5 中一切正常,但升级到 iOS6 我发现视频在呈现后没有按预期旋转。如果我在目标摘要页面上选择了更多受支持的界面方向,则会导致整个应用程序旋转。
Apple 文档在 UIViewController 类参考中说明了以下内容:
在 iOS 6 中,您的应用支持在应用的 Info.plist 文件中定义的界面方向。视图控制器可以覆盖supportedInterfaceOrientations 方法来限制支持的方向列表。一般情况下,系统只会在窗口的根视图控制器或呈现为填满整个屏幕的视图控制器上调用该方法;子视图控制器使用其父视图控制器为它们提供的窗口部分,并且不再直接参与有关支持哪些旋转的决策。应用程序的方向掩码和视图控制器的方向掩码的交集用于确定视图控制器可以旋转到哪些方向。
但我不确定子视图控制器何时真正参与轮换决策。我是否需要更改标签栏控制器的响应方式shouldAutorotate
以及supportedInterfaceOrientations
播放电影的方式?