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

时间:2011-06-15 16:54:27

标签: ios cocoa-touch uinavigationbar

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

问题是调试版本不会发生这个问题,但它确实发生在版本构建中。我真的很困惑,因为我没有使用任何条件来进行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];

这是第一个Windows方法:

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

  return [self keyWindow];
}

这是nowNonFullScreenViewAnimated:方法

- (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];    
}

0 个答案:

没有答案