Iphone 基本窗口程序的屏幕旋转赢得';行不通

Iphone 基本窗口程序的屏幕旋转赢得';行不通,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我使用“基于窗口的应用程序”模板创建了一个非常基本的iPad应用程序。不幸的是,当我旋转模拟器时,提供的视图不会旋转 此外,当我将视图控制器和/或UINavigationController添加到基本窗口时,它们也不会旋转。我已经实现了 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; } 在我添加的视图控制器中。。。但仍然看

我使用“基于窗口的应用程序”模板创建了一个非常基本的iPad应用程序。不幸的是,当我旋转模拟器时,提供的视图不会旋转

此外,当我将视图控制器和/或UINavigationController添加到基本窗口时,它们也不会旋转。我已经实现了

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}
在我添加的视图控制器中。。。但仍然看不到任何旋转


我遗漏了什么吗?

要协调自动旋转,应用程序的窗口将查找由视图控制器管理的最顶层子视图。该窗口在此视图控制器上调用
shouldAutorotateToInterfaceOrientation:
,并按照指示转换视图控制器的视图

这就是为什么基于窗口的应用程序不会自动旋转。默认模板未附带已为您设置的视图控制器。要利用自动旋转,您必须创建自定义的
UIViewController
子类,根据需要编辑其
shouldAutorotateToInterfaceOrientation:
方法,并将该视图控制器的视图添加为窗口的直接子视图(或者将视图控制器添加到容器中,如
UINavigationController
,并将该容器视图控制器的视图添加为窗口的子视图)。这通常在
应用程序:didfishlaunchingwithoptions:
中完成

您声明“当我将视图控制器和/或UINavigationController添加到基本窗口时,它们也不会旋转,”而且您已经实现了
应该自动旋转PointerFaceOrientation:
,并且它仍然不会旋转。如果您正确配置了所有内容,这应该可以工作。您可能在这个过程中犯了一些小错误,但我无法在不查看项目的情况下确定它是什么。下面是一些需要检查的内容:

  • 如果已经在NIB中定义了自定义视图控制器,请确保记得在IB中的Identity Inspector上更改其类名

  • 确保将视图控制器的视图直接添加到窗口中,并且没有其他视图充当窗口和视图控制器视图之间的包装器

  • 确保您没有尝试向IB中的窗口对象添加任何子视图。您应该在
    应用程序:didFinishLaunchingWithOptions:
    中添加其子视图

  • 如果在NIB中定义了自定义视图控制器,请确保其视图嵌套在IB中的视图控制器下。即,不要尝试将其他视图连接到视图控制器的
    视图
    出口


  • 这些都是不确定的。希望这个答案中的某些东西能帮助您找到错误。如果没有,请尝试创建一个基于视图的应用程序,并将其默认配置与基于窗口的应用程序进行比较。也许您的错误会跳出来。

    要协调自动旋转,您的应用程序的窗口会查找它的目标p—由视图控制器管理的大多数子视图。该窗口在此视图控制器上调用
    shouldAutorotateToInterfaceOrientation:
    ,并按指示转换视图控制器的视图

    这就是为什么基于窗口的应用程序不会开箱即用地自动旋转。默认模板中没有为您设置的视图控制器。若要利用自动旋转,您必须创建自定义的
    UIViewController
    子类,编辑其
    shouldAutorotateToInterfaceOrientation:
    方法(视情况而定),然后将该视图控制器的视图添加为窗口的直接子视图(或将视图控制器添加到容器中,如
    UINavigationController
    ,并将该容器视图控制器的视图添加为窗口的子视图)。这通常在
    应用程序:didFinishLaunchingWithOptions:
    中完成

    您声明“当我将视图控制器和/或UINavigationController添加到基本窗口时,它们也不会旋转,”而且您已经实现了
    应该自动旋转PointerFaceOrientation:
    ,并且它仍然不会旋转。如果您正确配置了所有内容,这应该可以工作。您可能在这个过程中犯了一些小错误,但我无法在不查看项目的情况下确定它是什么。下面是一些需要检查的内容:

  • 如果已经在NIB中定义了自定义视图控制器,请确保记得在IB中的Identity Inspector上更改其类名

  • 确保将视图控制器的视图直接添加到窗口中,并且没有其他视图充当窗口和视图控制器视图之间的包装器

  • 确保您没有尝试向IB中的窗口对象添加任何子视图。您应该在
    应用程序:didFinishLaunchingWithOptions:
    中添加其子视图

  • 如果在NIB中定义了自定义视图控制器,请确保其视图嵌套在IB中的视图控制器下。即,不要尝试将其他视图连接到视图控制器的
    视图
    出口


  • 这些都是在黑暗中拍摄的照片。希望此答案中的某些内容能帮助您找到错误。如果没有,请尝试创建基于视图的应用程序,并将其默认配置与基于窗口的应用程序进行比较。也许您的错误会跳出来。

    您是否记得在目标中设置支持所有旋转?是否您的设备旋转锁定?您的意思是您已经对视图控制器而不是视图实现了
    shouldAutorotateToInterfaceOrientation:
    ,对吗?@cduhn更正,很抱歉在原始帖子中使用了误导性的措辞。我用适当的方法添加了一个ViewController。@Shivan这在模拟器中发生。您记得在支持所有旋转的目标?设备旋转是否已锁定?您的意思是您已对视图控制器实现了
    shouldAutorotateToInterfaceOrientation:
    ,否