Iphone MPMoviePlayerController将纵向重新定向为横向并返回纵向(iOS 4.1)
由于iOS 3.2,MPMoviePlayerController类允许在视图层次结构中嵌入电影。 现在我面临这个问题:我通过放置MPMoviePlayerController的一个实例来创建纵向视图。当用户触摸“全屏”按钮时,该视图进入全屏模式,但视图保持纵向。当用户旋转设备时,全屏电影视图不会自动旋转,因为我的应用程序禁止横向界面方向。 因此,为了允许电影播放器全屏视图的自动旋转,我将我的视图控制器shouldAutorotateToInterfaceOrientation:method更改为当且仅当电影播放器处于全屏模式时,为横向返回YES。 这是完美的:当用户进入全屏,然后旋转到横向的球员是自动旋转到横向,并填补了整个屏幕Iphone MPMoviePlayerController将纵向重新定向为横向并返回纵向(iOS 4.1),iphone,uiinterfaceorientation,Iphone,Uiinterfaceorientation,由于iOS 3.2,MPMoviePlayerController类允许在视图层次结构中嵌入电影。 现在我面临这个问题:我通过放置MPMoviePlayerController的一个实例来创建纵向视图。当用户触摸“全屏”按钮时,该视图进入全屏模式,但视图保持纵向。当用户旋转设备时,全屏电影视图不会自动旋转,因为我的应用程序禁止横向界面方向。 因此,为了允许电影播放器全屏视图的自动旋转,我将我的视图控制器shouldAutorotateToInterfaceOrientation:method更改
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
return(YES);
}
if(UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
return([movieController isFullscreen]);
}
return(NO);
}
现在,当我在全屏视图中触摸“完成”按钮时,问题出现了,同时保持在横向视图中。全屏关闭,然后我看到的是我的原始视图自动旋转:但我不希望这种自动旋转
部分但不可接受的解决方案是监听“MPMoviePlayerDidExitFullscreenNotification”,如果界面旋转到横向,则强制重新定向以使用未记录的私有函数:
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait]
此方法可行,但不可接受,因为禁止使用此方法
我尝试使用[[UIApplication sharedApplication]SetStatusBaroOrientation:UIInterfaceOrientationGrait]
强制定向,但由于我在选项卡栏中,这不起作用(UITabBar保持横向大小)
感谢您的帮助您可以为MPMovieplayer使用单独的视图控制器。您不必重写
(BOOL)应自动旋转指针面定向:(ui界面定向)界面定向
在原始视图控制器中
如果您正在使用,那么一切都已经为您设置好了,因为默认情况下,方法shouldAutorotateToInterfaceOrientation:
将返回YES。您可以将其用作子视图,也可以通过调用PresentMoviePlayServiceController已激活:
请查看以下内容:
可能问题有点不同,但解决方案可能相同。您找到解决方案了吗?我也遇到了同样的情况,我找不到解决方案。理论上,通过iOS6中引入的管理方向的新方法,可以通过直接设置每个视图控制器方向来解决此问题。可以使用向每个视图控制器请求方向权限的新方法来完成此操作。