iphone-Tabbar控制器旋转问题

iphone-Tabbar控制器旋转问题,iphone,uitabbarcontroller,rotation,Iphone,Uitabbarcontroller,Rotation,我的应用程序有4个标签。所有视图控制器都支持旋转,并且在我旋转设备时确实是旋转的。对于其中一个视图控制器,我需要在旋转时重新定位一些子视图。我在视图控制器的willRotateToInterfaceOrientation中这样做,效果很好 当我切换到其他选项卡,然后旋转设备,然后返回到原始选项卡时,问题就出现了。它显然没有收到旋转通知,因为willRotateToInterfaceOrientation没有被调用。因此,似乎只有“活动”视图控制器收到设备已旋转的通知 问题:如何让所有视图控制器(

我的应用程序有4个标签。所有视图控制器都支持旋转,并且在我旋转设备时确实是旋转的。对于其中一个视图控制器,我需要在旋转时重新定位一些子视图。我在视图控制器的willRotateToInterfaceOrientation中这样做,效果很好

当我切换到其他选项卡,然后旋转设备,然后返回到原始选项卡时,问题就出现了。它显然没有收到旋转通知,因为willRotateToInterfaceOrientation没有被调用。因此,似乎只有“活动”视图控制器收到设备已旋转的通知


问题:如何让所有视图控制器(由TabBarController控制)旋转?

不幸的是,这是iOS 3.x中的一个错误。它在iOS 4.x中运行良好。我见过一些应用程序,手动跟踪方向变化,然后为非活动的ViewController手动执行旋转。糟透了。

查看iOS 3.2文档以确保其正常工作,
UITabBarController
中有一个
viewControllers
属性。试着这样做:

for (UIViewController * viewController in tabBarController) {
    // Do stuff here with each 'viewController'.
}

我建议您使用
UIViewController
-shouldAutorotateToInterfaceOrientation:
方法进行操作,但您可能有另一种实现旋转的方法。

您还应该检查您正在使用其子视图框架的控制器的ViewWillDisplay方法中的界面方向更改。因为当您移动到新选项卡并旋转设备时,现在当您点击另一个选项卡时,我们将调用viewWillAppear方法,您可以相应地更改帧。
我也遇到了同样的问题,我用这种方法解决了这个问题。这是一个iPad应用程序,所以我正在iPad模拟器3.2上测试。你是说,一旦我能用iPad4.0构建,它将神奇地开始工作?它大概能在4.0+上为iPads工作;没有升级的用户当然仍然会遇到bug。我在4.3.5上也面临同样的问题。我不确定这是否是一个iOS 3.x错误。当从一个选项卡转到另一个选项卡时,使用自动调整大小遮罩正确旋转的视图可以正常工作,但是如果需要自定义旋转代码,我发现没有任何旋转方法会自动调用,并且您有两个选项,通过NSNotifications监视旋转更改,或者对视图执行hack操作。还有其他建议吗?