UINavigationBar转移到状态栏所覆盖的顶部

有没有人遇到过一个问题,当屏幕在隐藏的状态栏和显示的状态栏之间转换时,具有自定义背景的导航栏移动到顶部?

问题是debugging版本不会发生这个问题,但是发布版本确实发生了这个问题。 我真的很困惑,因为我没有使用UI行为的任何条件。

此外,只有当应用程序以“全屏”状态进入前景模式时,才会发生这种情况。 然后我从全屏状态切换到非全屏状态,出现问题。

更新:无论我是否使用自定义背景,都会发生此问题。

我正在使用iOS 4.3.3上运行的iOS 4.3 SDK。

我做这样的转变:

UIWindow *window = [[UIApplication sharedApplication] firstWindow]; [window addMoveInTransitionWithDuration:0.5 subtype:kCATransitionFromBottom]; [self.fullScreenViewController.view removeFromSuperview]; [self presentNonFullScreenViewAnimated:NO]; 

这是第一个窗口方法:

 - (UIWindow *)firstWindow { if ([self.windows count] > 0) return [[self windows] objectAtIndex:0]; return [self keyWindow]; } 

这是presentNonFullScreenViewAnimated:方法

 - (void)presentNonFullScreenViewAnimated:(BOOL)animated { [[UIApplication sharedApplication] setStatusBarHidden:NO]; [self.navigationController setNavigationBarHidden:NO animated:NO]; NonFullScreenViewController *viewController = [[NonFullScreenViewController alloc] init]; [self.navigationController pushViewController:viewController animated:animated]; [viewController release]; }