16

我在 ios 6 中创建了一个带有导航视图的应用程序。我还在应用程序摘要中设置了所有方向选项,甚至使用了

 -(BOOL) shouldAutoRotate

-(NSUInteger) supportedInterfaceOrientaion

我的视图控制器中的方法。当我运行我的应用程序时,方向工作正常,除了颠倒。我应该怎么做才能支持颠倒。

添加 UITabBar 控制器时,我也面临同样的问题。

请分享你的想法。

谢谢

4

3 回答 3

17

海我找到了解决我的问题的方法

解决方案: 对于包含 UINavigation 控制器的应用程序,我只是为 UINavigation 控制器类创建了一个类别,并定义了这些方法

-(BOOL) shouldAutorotate{
    return YES;
}

-(NSUInteger) supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskAll;
}

添加后,我的应用程序支持所有方向。

同样,我也为 UITabBar 控制器做了。通过为 UITabBar 控制器创建类别,这也对我有用。

谢谢你。

于 2013-04-17T05:46:14.940 回答
1

电话应用程序传统上不支持倒置(为什么要将手机倒置?) - 默认项目将支持纵向和横向选项,但不支持倒置。

在 Xcode 的项目信息查看器中更改它,你应该没问题。有支持的方向的可视化表示,倒置将被取消选择。

于 2012-11-28T12:08:56.957 回答
0

我认为 NSUserDefault 的解决方案是不完整的:

来自:https ://developer.apple.com/library/ios/qa/qa1688/_index.html

注意:在修改 UIKit 类(如 UINavigationController)的旋转行为时,您应该始终喜欢子类化而不是类别。因为其他类可能依赖于 UIKit 容器视图控制器的现有行为,一个类别引入的更改可能会导致意外行为。

所以我认为最好的解决方案是创建一个子类并添加:

-(BOOL) shouldAutorotate{
     return YES;
}

-(NSUInteger) supportedInterfaceOrientations{

     return UIInterfaceOrientationMaskAll;
}
于 2013-12-16T17:15:54.013 回答