Iphone iOS 6自动旋转问题

Iphone iOS 6自动旋转问题,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我有一个viewcontroller,我希望它只能以纵向显示,因此我在iOS 6中执行了以下操作: -(BOOL)shouldAutorotate { return NO; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } 但是,当我旋转设备时,它仍然会将其转向横向。知道去哪里查这个吗?我放了一个断点,它点击了支持的界面方向,但它仍然旋转你

我有一个viewcontroller,我希望它只能以纵向显示,因此我在iOS 6中执行了以下操作:

-(BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

但是,当我旋转设备时,它仍然会将其转向横向。知道去哪里查这个吗?我放了一个断点,它点击了
支持的界面方向
,但它仍然旋转

你有导航控制器吗?iOS6确定什么可以自动旋转的方式已经改变。它正确地询问视图控制器的supportedInterfaceOrientations,但它可能询问“shouldAutorotate”到导航堆栈层次结构中的另一个元素并接受该答案。如果您的navigationController/tabviewController对此问题返回yes,则它不会咨询您的视图控制器。

您有导航控制器吗?iOS6确定什么可以自动旋转的方式已经改变。它正确地询问视图控制器的supportedInterfaceOrientations,但它可能询问“shouldAutorotate”到导航堆栈层次结构中的另一个元素并接受该答案。如果您的navigationController/tabviewController对此问题返回yes,则它不会咨询您的视图控制器。

您还应在应用程序委托中提供应用程序支持的方向:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
    return UIInterfaceOrientationMaskPortrait;
}
确保正确添加根视图控制器(不是将其添加为子视图),而是使用以下方法:

[window setRootViewController:myVC];
此外,如果视图控制器位于
UINavigationController
中,则应将此类别用于navigationcontroller:

@implementation UINavigationController (autorotate)

- (NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskPortrait;
}

@end

在iOS 6中,只有最顶端的全屏控制器的根视图控制器被问及旋转。这包括
UINavigationController
,此类不询问其视图控制器,而是直接响应。苹果现在建议将
UINavigationController
子类化,以覆盖
支持的接口方向的
输出。

您还应在应用程序委托中提供应用程序支持的方向:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
    return UIInterfaceOrientationMaskPortrait;
}
确保正确添加根视图控制器(不是将其添加为子视图),而是使用以下方法:

[window setRootViewController:myVC];
此外,如果视图控制器位于
UINavigationController
中,则应将此类别用于navigationcontroller:

@implementation UINavigationController (autorotate)

- (NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskPortrait;
}

@end


在iOS 6中,只有最顶端的全屏控制器的根视图控制器被问及旋转。这包括
UINavigationController
,此类不询问其视图控制器,而是直接响应。苹果现在建议子类化
UINavigationController
以覆盖
支持的接口方向的
输出。

确保您的项目设置和信息。plist仅选择了纵向方向,因为在检查支持的属性时,它们的优先级高于应用程序委托方向

确保您的项目设置和info.plist仅选择了纵向方向,因为在检查支持的方向时,它们的优先级高于应用程序代理

控制器是否在UINavigationController中?在Xcode目标设置中,检查您是否选择了仅以支持的界面方向移植。我不希望我的应用程序仅支持纵向,我有一些vc,我想让它只支持肖像。你的控制器在UINavigationController中吗?在你的Xcode目标设置中,检查你是否在支持的界面方向中选择了仅portait。我不希望我的应用程序只支持肖像,我有一些vc,我想让它只支持肖像不,我没有导航控制器,这只是一个视图控制器,基本上只是将其添加为子视图OK,然后查看你的“-(BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchwithOptions:(NSDictionary*)launchOptions”在应用程序代理中运行,并确保您的窗口不仅将viewControllers视图添加为子视图,还将UIWindow的rootViewController设置为ViewControllert谢谢,rooster117!我已经尝试解决这个问题一段时间了,但是没有看到其他人解释UIWindow的详细信息。不,我没有导航控制器,这只是一个视图控制器,基本上只是将其添加为子视图OK然后查看“-(BOOL)应用程序:(UIApplication*)应用程序完成启动时使用选项:(NSDictionary*)启动应用程序代理中的“选项”功能,并确保您的窗口不仅仅是将viewControllers视图添加为子视图,而是将UIWindow的rootViewController设置为ViewControllert谢谢,rooster117!我已经尝试解决这个问题一段时间了,但是没有看到其他人解释UIWindow的细节。我有一个视图控制器,我只想支持肖像,所以不是整个应用程序都支持肖像。你仍然应该在代理中提供此方法,为你的应用程序提供所有可能的方向。确保将视图控制器添加为根视图,而不是将其视图添加为子视图。另外,请检查项目的info.plist方向。。在我的应用程序代理中,我没有将我的vc设置为root的窗口。我正在使用序列图像板设置所有这些,我在序列图像板中有这样做的方法吗?我有一个视图控制器,我只想支持肖像,所以不是整个应用程序都支持肖像。你仍然应该在代理中提供此方法,并为你的应用程序提供所有可能的方向。确保将视图控制器添加为根视图,而不是将其视图添加为子视图。另外,请检查项目的info.plist方向。。在我的应用程序代理中,我没有将我的vc设置为root的窗口。我正在使用故事板设置所有这些,我想在故事板中有这样做的方法吗?