ViewController 在 iOS6 上不旋转

Posted

技术标签:

【中文标题】ViewController 在 iOS6 上不旋转【英文标题】:ViewController not rotating on iOS6 【发布时间】:2012-10-03 17:47:06 【问题描述】:

我的大部分应用程序不支持轮换。在支持的方向上,我只选择了肖像。在应用程序使用的 UIViewController 子类上,我有这个:

-(BOOL)shouldAutorotate 
    return NO;


-(NSUInteger)supportedInterfaceOrientations 
    NSLog(@"supported?");
    return UIInterfaceOrientationMaskPortrait;


-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 

    NSLog(@"preferred");
    return UIInterfaceOrientationPortrait;

在支持方向的 UIViewController 子类中,我有这个:

-(BOOL)shouldAutorotate 
    return YES;


-(NSUInteger)supportedInterfaceOrientations 
    NSLog(@"supported?");
    return UIInterfaceOrientationMaskAll;


-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 

    NSLog(@"preferred");
    return UIInterfaceOrientationPortrait;

但是,我的应用程序不会在任何视图上旋转,包括这个。怎样才能让它按我的意愿在这里旋转?

【问题讨论】:

您是否将所有方向添加到 Info.plist 中支持的方向? 不,我只选择了肖像作为支持的方向。如果我启用横向,它只会在每个视图控制器上旋转到横向。 你有导航控制器吗? 你应该支持你的应用程序使用的所有方向。所以问题应该是为什么你的视图控制器旋转到横向。 @rooster117 是的。 DrummerB - 好的,所以如果它设置为打开,我如何阻止它在某些视图上旋转到横向? 【参考方案1】:

如果您使用的是导航控制器,请确保在您的 App Delegate 中执行此操作:

self.window.rootViewController = self.navigationController;

有关其他参考资料,请从 SO 中查看此问题:

Rotation behaving differently on ios6

【讨论】:

这应该可以解决您的问题。前几天我花了几个小时试图解决这个问题,很高兴最终我能够在我的应用程序委托上用这条线解决它。

以上是关于ViewController 在 iOS6 上不旋转的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 登录对话框在 iOS6 模拟器上不起作用

iOS6 xib 错误“加载了“ViewController”笔尖,但未设置视图出口。'”

应用程序在 iOS 6 上运行但在 iOS 5 上不运行 [重复]

在 iOS 6 上不推荐使用 groupTableViewBackgroundColor 吗?

IOS 6 方向 - 只有一个 Viewcontroller 支持横向和纵向方向 - 否则只支持纵向

ios6--UILabel