旋转TabBarController的所有视图

时间:2010-08-29 19:14:34

标签: iphone

我有一个包含4个视图的TabBarController应用程序。 我已经把所有4个viewControllers上的autorotate方法返回yes:

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

多亏了这一点,现在当我旋转iPhone时,旋转工作,甚至旋转TabBar。

在每个视图中,我都可以使用以下代码进行更新以查看轮换发生的时间:

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [self adjustViewsForOrientation:toInterfaceOrientation];
}

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation {
    if (orientation == UIInterfaceOrientationLandscapeLeft ||
        orientation == UIInterfaceOrientationLandscapeRight) {

//Here i can update the view when it goes to landscape

    }
    else if (orientation == UIInterfaceOrientationPortrait ||
             orientation == UIInterfaceOrientationPortraitUpsideDown) {

//Here i can update the view when it goes to portrait

    }

}

问题是当我进行旋转时,只有当前显示的视图正在更新。如果稍后我更改了查看tabBar的视图,我会看到未针对新方向更新视图。

有没有办法让所有观点都意识到方向已改变?

1 个答案:

答案 0 :(得分:0)

好的,我发现了! = d

诀窍是使用函数:

- (void)viewWillAppear:(BOOL)animated 

只需在viewControllers中调用它,然后在代码中插入以更新视图。享受!