iOS 6的界面方向不起作用

时间:2013-01-29 05:25:46

标签: iphone ios objective-c xcode orientation

我有一个应用程序,我想以纵向模式显示。但我只想在两种模式下显示一个视图。

我已经为iOS5做了这个。但在iOS6中,我无法做到这一点。

我也尝试了很多代码来解决它。

我在我的应用中使用导航&在ios6中无法在两种模式下仅旋转一个视图。您可以修改视图的旋转或旋转整个应用程序。我是对的吗?

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

在ios6中的

你有没有尝试像pllow图像那样的plist: -

enter image description here

您还可以设置xcode-> projectname->摘要: -

enter image description here

答案 1 :(得分:1)

来自Apple的iOS 6 SDK发行说明:

  

iOS 6中的自动旋转正在发生变化。在iOS 6中,   shouldAutorotateToInterfaceOrientation:UIViewController的方法是   弃用。在它的位置,你应该使用   supportedInterfaceOrientationsForWindow:和shouldAutorotate方法。

More responsibility is moving to the app and the app delegate. Now, iOS containers (such as UINavigationController) do not consult
     他们的孩子要确定他们是否应该自行旋转。通过   默认,应用程序和视图控制器支持的界面   方向设置为iPad的UIInterfaceOrientationMaskAll   适用于iPhone的idiom和UIInterfaceOrientationMaskAllButUpsideDown   成语。

A view controller’s supported interface orientations can change over time—even an app’s supported interface orientations can change
     

随着时间的推移。系统询问最顶层的全屏视图控制器   (通常是根视图控制器)用于其支持的接口   设备旋转时或视图控制器时的方向   呈现全屏模态演示风格。此外,   仅当此视图控制器时才检索支持的方向   从shouldAutorotate方法返回YES。系统相交   视图控制器支持的方向,支持应用程序   方向(由Info.plist文件或应用程序确定   委托的应用程序:supportedInterfaceOrientationsForWindow:   方法)确定是否旋转。

The system determines whether an orientation is supported by intersecting the value returned by the app’s
     

supportedInterfaceOrientationsForWindow:带有值的方法   由最顶层的supportedInterfaceOrientations方法返回   全屏控制器。 setStatusBarOrientation:animated:方法   完全不被弃用。它现在只适用于   最顶层全屏视图的supportedInterfaceOrientations方法   控制器返回0.这使得调用者负责确保   状态栏方向是一致的。

For compatibility, view controllers that still implement the shouldAutorotateToInterfaceOrientation: method do not get the new
     

自转行为。 (换句话说,他们不会回归   使用app,app delegate或Info.plist文件来确定   支持的方向。)相反,   shouldAutorotateToInterfaceOrientation:方法用于合成   将返回的信息   supportedInterfaceOrientations方法。

     

如果您希望整个应用程序旋转,那么您应该设置您的   Info.plist支持所有方向。现在,如果你想要一个特定的   视图只是肖像,你必须做某种子类和   覆盖自动旋转方法以仅返回肖像。

请参阅此示例How to force a UIViewController to Portrait orientation in iOS 6

修改

解决方案:

@implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
    return [[self.viewControllers lastObject] shouldAutorotate];
}

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}

@end