如何使用导航栏移除黑色空间

时间:2015-08-12 10:44:13

标签: ios xcode uinavigationcontroller uinavigationbar

我正在使用导航控制器。

在我的第一个屏幕中,他们不需要NavigationBar。因为这是主屏幕。所以我使用此代码隐藏它:

- (void)viewWillAppear:(BOOL)animated
{
   [self.navigationController setNavigationBarHidden:YES];
}

当我按下新屏幕时,我正在使用以下代码显示NavigationBar:

 - (void)viewWillAppear:(BOOL)animated
{
   [self.navigationController NO];
}

问题是,当我从其他屏幕返回到我的HomeScreen时,我正在使用黑屏代替navigationBar。

以下是Image中的问题:

enter image description here

白色屏幕是我的ViewController,它有导航栏,BLue有一个导航栏。如何删除黑色部分。

3 个答案:

答案 0 :(得分:0)

单击导航控制器并转到属性检查器并取消选中显示导航栏选项,如屏幕截图所示:

enter image description here

答案 1 :(得分:0)

有一种更好的方法。您需要做的就是创建UINavigationController类的子类。设置UINavigationControllerDelegate。在类中添加以下方法。

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if([viewController isKindOfClass: [SomeClass class]])
        [self setNavigationBarHidden: NO];
    else
        [self setNavigationBarHidden: YES];
}

OR

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

答案 2 :(得分:0)

尝试这个

self.navigationItem.hidesBackButton = YES;