我正在设置仅MPMoviePlayerController
处于活动状态的界面方向。与此同时,一部电影开始播放。在项目目标中,我检查了Portrait
,Landscape Left
和Landscape Right
。另外,在AppDelegate文件中,我实现了supportedInterfaceOrientationsForWindow
方法,我尝试检查presentedViewController
是MPMoviePlayerController
。但是,我无法正确实现它。
如何以正确的方式解决我的问题?
当MPMoviePlayerController处于活动状态时,更改支持的接口方向的最佳解决方案是什么?
感谢您的回答
尊敬的
答案 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恢复。