3

我在尝试从 iOS 6 设置新的 UIInterfaceOrientations 时遇到了麻烦。

恢复我的应用程序:

  • 我的应用程序有很多视图;
  • 几乎每个视图都应该以纵向显示;
  • 我的 2 个视图(播放视频的视图MPMoviePlayerViewController)应该向左、向右和纵向旋转。

我最初的想法是将应用程序支持的方向设置为纵向,然后从视频播放器视图中更改(不知道如何)支持的方向。

处理这个问题的最佳方法是什么?

先感谢您!

4

2 回答 2

2

通过将支持的界面方向设置为我需要的所有方向(纵向、横向和左侧)并添加Category.UINavigationController

我将类别添加到任何UINavigationController我想保持纵向模式的事件中,并像这篇文章一样对待 iOS 6 旋转:

@implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

@end

实现了这个我仍然有一些问题,因为代码是这样的:

[self.window.rootViewController presentModalViewController:controller animated:NO]; 

而不是这个:

[self.navigationController pushViewController:controller animated:NO];

通过上述更改,我能够将整个应用程序保持在纵向模式,并让视频播放器视图保持旋转,因为它们的方法(shouldRotate 和supportedInterfaceOrientations)没有被覆盖。

于 2012-09-27T18:40:59.620 回答
1

查看我的帖子:https ://stackoverflow.com/a/12538622/1575017 这是同一件事,但为您翻转了方向。

于 2012-09-26T20:56:30.753 回答