我正在使用导航控制器。
在我的第一个屏幕中,他们不需要NavigationBar
。因为这是主屏幕。所以我使用此代码隐藏它:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES];
}
当我按下新屏幕时,我正在使用以下代码显示NavigationBar:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController NO];
}
问题是,当我从其他屏幕返回到我的HomeScreen时,我正在使用黑屏代替navigationBar。
以下是Image中的问题:
白色屏幕是我的ViewController,它有导航栏,BLue有一个导航栏。如何删除黑色部分。
答案 0 :(得分:0)
答案 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;