我试图建立一个在主窗口中两个子视图的iPhone应用程序。每个视图都有一个与之关联自己的UIViewController子类。此外,每个控制器的实现中,我已经添加了以下的方法:

-(BOOL)shouldAutorotateToInterfaceOrientation:
 (UIInterfaceOrientation)interfaceOrientation {
    return YES;
   }

因此,我期望二者的意见,在取向的变化做出反应。然而,这种情况并非如此。只有第一视图添加到应用程序的主窗口响应取向。 (如果我交换意见的添加顺序,则只有另一视图地响应。换句话说,无论是将工作 - 但仅一次一个)

这是为什么?是它不能够处理多于一个视图的取向变化?

谢谢!

编辑:别人有这个问题,所以我在这里复制我的解决方案:

我能够通过提供一种根视图和根视图控制器与方法来解决这个问题“shouldAutoRotate ...”并加入我的其他视图作为子视图到根视图。子视图继承自动旋转行为,及其相关的视图控制器不应该需要重写“shouldAutoRotate ......”

有帮助吗?

解决方案 2

终于要在这里发布我的解决方案:

基本上,它归结为具有“根”的UIViewController。在此,我有方法:

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
        return YES;
}

我也加我想自动旋转为子视图这根UIViewContoller的UIView的意见。这些子视图还具有视图控制器但做的倍率shouldAutorotateToInterfaceOrientation。事实上,增加这个方法对那些视图控制器似乎也不具备任何效力。只有根视图位指示的shouldAutorotateToInterfaceOrientation似乎工作和所有子视图得到适当的旋转。

其他提示

您需要重写shouldAutorotateToInterfaceOrientation方法你有三个控制器。

您可以尝试实现类,该图既包含您的viewController的意见,这种方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top