我有一个应用程序,我想以纵向模式显示。但我只想在两种模式下显示一个视图。
我已经为iOS5做了这个。但在iOS6中,我无法做到这一点。
我也尝试了很多代码来解决它。
我在我的应用中使用导航&在ios6中无法在两种模式下仅旋转一个视图。您可以修改视图的旋转或旋转整个应用程序。我是对的吗?
如何解决此问题?
答案 0 :(得分:1)
你有没有尝试像pllow图像那样的plist: -
您还可以设置xcode-> projectname->摘要: -
答案 1 :(得分:1)
来自Apple的iOS 6 SDK发行说明:
iOS 6中的自动旋转正在发生变化。在iOS 6中, shouldAutorotateToInterfaceOrientation:UIViewController的方法是 弃用。在它的位置,你应该使用 supportedInterfaceOrientationsForWindow:和shouldAutorotate方法。
他们的孩子要确定他们是否应该自行旋转。通过 默认,应用程序和视图控制器支持的界面 方向设置为iPad的UIInterfaceOrientationMaskAll 适用于iPhone的idiom和UIInterfaceOrientationMaskAllButUpsideDown 成语。More responsibility is moving to the app and the app delegate. Now, iOS containers (such as UINavigationController) do not consult
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