将支持的界面方向设置为 'All' 只有 MPMoviePlayerController 在 swift 中处于活动状态
Setting supported interface orientation as 'All' only MPMoviePlayerController is active in swift
我正在尝试仅设置界面方向 MPMoviePlayerController
处于活动状态。与此同时,一部电影开始播放。在项目的目标中,我勾选了Portrait
、Landscape Left
和Landscape Right
。此外,在 AppDelegate 文件中,我实现了 supportedInterfaceOrientationsForWindow
方法,并尝试检查 presentedViewController
是否为 MPMoviePlayerController
。但是,我无法正确实施它。
我怎样才能用正确的方法解决我的问题?
当 MPMoviePlayerController 处于活动状态时更改支持的界面方向的最佳解决方案是什么?
感谢您的回答
国王问好
您 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。
我正在尝试仅设置界面方向 MPMoviePlayerController
处于活动状态。与此同时,一部电影开始播放。在项目的目标中,我勾选了Portrait
、Landscape Left
和Landscape Right
。此外,在 AppDelegate 文件中,我实现了 supportedInterfaceOrientationsForWindow
方法,并尝试检查 presentedViewController
是否为 MPMoviePlayerController
。但是,我无法正确实施它。
我怎样才能用正确的方法解决我的问题?
当 MPMoviePlayerController 处于活动状态时更改支持的界面方向的最佳解决方案是什么?
感谢您的回答
国王问好
您 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。