0

如果我有一个 UITabBarController,显示 4 个视图控制器:vc1、vc2、vc3、vc4。
当显示 vc1 时,我旋转设备。
所有视图控制器会接收并运行 AutoRotate 方法(shouldAutoRotate、willAutoRotate)还是只运行 vc1?

如果只有 vc1:我是否应该只发送通知并为其注册所有 vc,以便它们也会轮换?因为我不想将 vc1 旋转到横向,然后转到 vc2,它仍然会在横向上。

顺便说一句-如果重要的话-我对纵向和横向使用不同的xib。

天呐!

4

1 回答 1

0

这取决于您的应用程序是如何构建的。你应该有某种 ViewController 可以容纳你的其他 viewController。所以你可以做这样的事情:

-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    NSLog(@"Main will rotate");

    [view1 willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [view2 willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [view3 willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [view4 willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}

在这种情况下,您所有的 UIViewController 都会旋转,因为持有它们的人正在旋转并让他的孩子旋转。:)

我真的很喜欢这种方法,因为您不需要从每个 viewController 引用其他 viewController。(view1 不需要知道有 view2、view3 和 view4)。

于 2011-07-28T14:17:24.483 回答