1

UINavigationController用来指导某些视图controllers。在某些视图控制器中,我不想使用UINavigationBar,但在其他一些视图控制器中我可能会使用。现在我尝试使用UINavigationBar其前一个隐藏的视图控制器弹出一个视图控制器UINavigationBar。但是当弹出时,屏幕下方有一个有线黑色空间。旋转屏幕后,空间将消失。

普通的视图控制器 A 应该是这样的:

在此处输入图像描述

当按下文本按钮时,将推送一个视图控制器B,如下所示: 在此处输入图像描述

当点击导航栏上的返回按钮时。A会出来。但底部有一个黑色空间。

在此处输入图像描述

如果旋转屏幕,空间将消失。而且在 A 的- (void)viewWillAppear:(BOOL)animated方法中,我隐藏了导航栏并让屏幕自动旋转。

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
    [self willAnimateRotationToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
}

这种情况有什么问题?任何帮助将不胜感激。

4

1 回答 1

1

setNavigationBarHidden:在后退按钮操作方法中添加方法。有用。如果我在viewWillDisappear:方法或其他方法中添加此方法,它似乎不起作用。导航栏将对下一个出现的视图控制器产生影响。这意味着,导航堆栈中的下一个视图控制器中将有一个黑色空间。

最后,我为返回按钮和方法中添加了一个动作方法setNavigationBarHidden:YES,如下:

- (void)backBtnClicked:(id)sender
{
    [self.navigationController popViewControllerAnimated:NO];
    [self.navigationController setNavigationBarHidden:YES];
}
于 2013-07-18T08:42:15.123 回答