我有一个包含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的视图,我会看到未针对新方向更新视图。
有没有办法让所有观点都意识到方向已改变?
答案 0 :(得分:0)
好的,我发现了! = d
诀窍是使用函数:
- (void)viewWillAppear:(BOOL)animated
只需在viewControllers中调用它,然后在代码中插入以更新视图。享受!