将支持的界面方向设置为'全部'只有MPMoviePlayerController在swift中处于活动状态

时间:2015-07-14 09:30:11

标签: ios swift uiinterfaceorientation mpmoviewcontroller

我正在设置仅MPMoviePlayerController处于活动状态的界面方向。与此同时,一部电影开始播放。在项目目标中,我检查了PortraitLandscape LeftLandscape Right。另外,在AppDelegate文件中,我实现了supportedInterfaceOrientationsForWindow方法,我尝试检查presentedViewControllerMPMoviePlayerController。但是,我无法正确实现它。 如何以正确的方式解决我的问题? 当MPMoviePlayerController处于活动状态时,更改支持的接口方向的最佳解决方案是什么?

感谢您的回答

尊敬的

1 个答案:

答案 0 :(得分:1)

UIInterfaceOrientationMaskAll您需要MPMoviePlayerController ,因此,在创建控制器时,请使用BOOL变量来识别所需的接口。

MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];

重写initWithContentURL方法并将AppDelegate BOOL变量设置为YES,并在viewWillDisappear将BOOL设置为NO

在Appdelegate.m

#pragma mark --- Orientation Changes for Movie

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

if (self.OrientationNeeded)
{
    return  UIInterfaceOrientationMaskAll;
}
return UIInterfaceOrientationMaskPortrait;
}

流程将是完美的,首先调用init方法,然后设置BOOL变量,然后调用supportedInterfaceOrientationsForWindow方法并在视图结束时将BOOL恢复。