将横向中的MPmovieViewController仅以纵向方式解除视图时出错(UIApplicationInvalidInterfaceOrientation)

时间:2014-06-26 16:45:13

标签: ios objective-c mpmovieplayercontroller uiinterfaceorientation

我为IOS7创建了一个xcode应用程序,该应用程序在大多数视图中以纵向模式工作。

项目设置允许"肖像" "左倾风景"和#34;正确的景观"。

在我只想以纵向显示的视图中,我添加以下代码以纵向模式锁定它们:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

在其中一个锁定视图中,我使用以下代码呈现MPmovieViewController:

MPMoviePlayerViewController *movieViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:replayURL];
    movieViewController.moviePlayer.scalingMode = MPMovieScalingModeAspectFit;

    [self presentMoviePlayerViewControllerAnimated:movieViewController];

此代码创建一个MPmovieViewController,我可以在Portrait和Landscape中使用它。 (这就是我想要的)

当我在横向模式下按下MPMovieViewController的完成按钮以关闭MovieController时,会出现问题。上一个视图不支持横向模式,因此我有以下错误:

 *** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'preferredInterfaceOrientationForPresentation must return a supported interface orientation!'

当关闭MPMovieViewController时,如何强制旋转回到纵向模式?

祝你好运

理查德

1 个答案:

答案 0 :(得分:2)

我正在回答自己。实际上它非常简单。

只需添加到仅限肖像视图:

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationPortrait; }

由于