我有一个应用程序,通过在UITableViewController上执行选择操作后呈现MPMoviePlayerViewController播放视频,该UITableViewController嵌入在UINavigationController中,而UINavigationController嵌入在UITabBarController中。在iOS5中,一切都按预期工作,但升级到iOS6后,我发现视频在展示后没有像预期的那样旋转。如果我在目标概要页上选择更多支持的界面方向,则会导致整个应用程序旋转。苹果文档在UIViewController类引用中如下所述:
“在iOS 6中,您的应用程序支持Info.plist文件中定义的接口方向。视图控制器可以覆盖supportedInterfaceOrientations方法以限制支持的方向列表。通常,系统仅在窗口的根视图控制器或呈现以填充整个屏幕的视图控制器上调用此方法;子视图控制器使用其父视图控制器提供给它们的窗口部分,并且不再直接参与有关支持哪些旋转的决策。应用程序方向掩码与视图控制器方向掩码的交集用于确定可以将视图控制器旋转到哪些方向。”
但我不确定子视图控制器何时实际上参与旋转决策。当电影正在播放时,我需要更改我的Tab Bar Controller对shouldAutorotate和supportedInterfaceOrientations的响应方式吗?
“在iOS 6中,您的应用程序支持Info.plist文件中定义的接口方向。视图控制器可以覆盖supportedInterfaceOrientations方法以限制支持的方向列表。通常,系统仅在窗口的根视图控制器或呈现以填充整个屏幕的视图控制器上调用此方法;子视图控制器使用其父视图控制器提供给它们的窗口部分,并且不再直接参与有关支持哪些旋转的决策。应用程序方向掩码与视图控制器方向掩码的交集用于确定可以将视图控制器旋转到哪些方向。”
但我不确定子视图控制器何时实际上参与旋转决策。当电影正在播放时,我需要更改我的Tab Bar Controller对shouldAutorotate和supportedInterfaceOrientations的响应方式吗?