iphone - TabBarController轮换问题

时间:2010-08-21 00:15:22

标签: iphone uitabbarcontroller rotation

我的应用有4个标签。所有视图控制器都支持旋转,实际上在旋转设备时会旋转。对于其中一个视图控制器,我需要在旋转时重新定位一些子视图。我在该视图控制器的willRotateToInterfaceOrientation中执行此操作,并且它工作正常。

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

查看iOS 3.2文档以确保其有效,viewControllers中有UITabBarController个属性。尝试这样的事情:

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

我建议您使用UIViewController的{​​{1}}方法执行某些操作,但您可能采用其他方式来实现轮换。

答案 2 :(得分:0)

您还应该检查控制器的viewWillAppear方法中的界面方向,该控制器的子视图框架正在更改。因为当您移动到新选项卡并旋转设备时,现在当您点击另一个选项卡时,我们将调用viewWillAppear方法在那里你可以相应地改变帧。 我也面临同样的问题,我使用这种方法解决了