如何只旋转subclassed mpmovieplayer控制器,并保持其他视图固定到肖像

我正在使用从MPMoviePlayerController分类的xcdYoutubeVideoViewController。 我的申请是肖像。 要启动电影播放器​​,我正在这样做:

UINavigationController *navBarController = (UINavigationController*)[[[UIApplication sharedApplication] keyWindow] rootViewController] ; [navBarController presentMoviePlayerViewControllerAnimated:vc]; 

其中vc是XCDYouTubeVideoPlayerViewController的实例。 我怎样才能让旋转只在这个视图和按下完成button在movieplayer把应用程序回肖像?

您应该覆盖: -(BOOL) shouldAutorotate在每个视图控制器。 如果您希望视图控制器不旋转否则返回YES。 请务必检查故事板设置上支持的方向。

更新:在您的父控制器呈现该播放器试试这个:

 - (BOOL)shouldAutorotate { // 1. check if the parent presentedViewController is the nav containing the player // 2. if yes, return YES, NO otherwise } 

如果应用程序根控制器是一个导航控制器,子类UINavigationViewController并使用该类创build应用程序委托中的应用程序根视图控制器

 @implementation ANavigationViewControllerSubClass - (BOOL)shouldAutorotate { return [self.topViewController shouldAutorotate]; } - (NSUInteger)supportedInterfaceOrientations { return [self.topViewController supportedInterfaceOrientations]; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return [self.topViewController preferredInterfaceOrientationForPresentation]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return [self.topViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return [self.topViewController preferredInterfaceOrientationForPresentation]; }