我的应用程序有一个包含导航控制器的标签栏。
当我旋转到横向时,我通过将横向视图推到导航控制器堆栈上来切换到不同的视图,如下所示:
- (void) orientationDidChange: (NSNotification *) notification {
if (self.tabBarController.selectedViewController == self.navigationController) {
if (self.navigationController.topViewController == self &&
[[notification name] isEqualToString: kOrientationLandscape]) {
[self.navigationController pushViewController: landscapeViewController animated: NO];
}
if (self.navigationController.topViewController != self &&
[[notification name] isEqualToString: kOrientationPortrait]) {
[self.navigationController popViewControllerAnimated: NO];
}
}
}
这样可以正常工作,但是当我旋转回肖像时,视图会正确显示,然后按照我猜测的导航条的高度“跳”起来。然后视图的顶部隐藏在导航栏后面。
如果我以通常的方式将另一个控制器推到顶部,然后弹回到纵向视图,它会正确显示 - 只有从横向旋转回来时才会出现。
此外,它在模拟器中工作正常,但在iPhone上却没有。我正在为2.0构建,但对于以后的版本来说似乎也是一样。
有什么想法吗?
干杯 灰