0

我有一个看起来像这样的父/子视图控制器系统

-- (Parent) RootViewController
      -- (Child) ChildController
              -- (Child) GrandChildController1
              -- (Child) GrandChildController2

基本上,我有一个带有 childViewController 的根视图控制器。该 childViewController 充当其他几个控制器的 parentViewController。现在,我想允许其中一个 GrandChildViewController 旋转。但这是层次结构中唯一允许旋转的控制器。

我将子视图控制器添加到这样的层次结构中:

[self addChildViewController:_childViewController];
[self.view addSubview:_childViewController.view];

现在,当设备旋转时,我的第一个 childViewController 正在接收旋转事件,但该控制器的所有子视图(大子视图控制器)都没有接收到旋转事件。有谁知道为什么?

谢谢

4

1 回答 1

1

需要注意的事项:

  • 在 iOS 6 中,您还需要覆盖supportedInterfaceOrientations- 覆盖shouldAutorotate是不够的。
  • 在 iOS 5 中,如果父 VC 返回NOshouldAutorotateToInterfaceOrientation:它将取消子 VC 的轮换。我不确定 iOS 6 自动旋转机制的行为是否类似。

从您的评论中,我猜您缺少supportedInterfaceOrientations. 如果我的猜测是错误的,那么如果您向我们展示您在所有控制器中实现自动旋转方法可能会有所帮助。

于 2013-06-05T00:24:05.890 回答