我正在开发一个我需要展示的应用程序" MPMoviePlayerController"在横向模式和纵向模式下。但我的整个应用程序只需要支持纵向模式。对于" MPMoviePlayerController"以外的任何视图,这都不是横向模式。
我在堆栈溢出时尝试了很少的东西。在我的案例中没有任何作用。感觉被困在中间。但我看到一些应用程序支持糟糕的要求。 我必须为iOS 6,7实现它
在我的应用程序中使用" XCDYouTubeVideoPlayerViewController"用于播放视频(播放YouTube视频)
请帮助
答案 0 :(得分:0)
我遇到了同样的问题,以下问题解决了这个问题:
首先,您需要通过选中目标/常规/部署信息/设备方向的复选框来允许横向模式,然后您必须在应用中使用的每个ViewController上通过代码禁用横向方向。
#pragma mark - Set Supported Device Orientation
//For iOS6
- (BOOL)shouldAutorotate {
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
//For iOS4 and iOS5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
但是不要禁用XCYoutubeVideoPlayerViewController的横向方向,因此在全屏时它可以旋转到横向。
答案 1 :(得分:0)
我有另一个解决方案,它适用于所有MPMoviePlayerController
,下面是我的代码
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)windowx
{
if ([[self.window.rootViewController presentedViewController] isKindOfClass:[MPMoviePlayerViewController class]] ||
[[self.window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(@"MPInlineVideoFullscreenViewController")])
{
if ([self.window.rootViewController presentedViewController].isBeingDismissed)
{
return UIInterfaceOrientationMaskPortrait;
}
else
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
}
else
{
return UIInterfaceOrientationMaskPortrait;
}
}
我们在这里基本上做的是为所有MPMoviePlayerController
类启用横向方向,当您将其显示为全屏时,这些类实际为MPInlineVideoFullscreenViewController
。
希望这有帮助