Objective c 导航栏隐藏,不工作
嗨,我是iOS开发的新手。我有一个主屏幕与导航栏隐藏真实。从那里,我使用back segue导航到另一个视图。但当我点击后退时,它会在主屏幕上显示导航栏。这是我的问题描述 在主屏幕onviewload中,我正在执行以下操作:Objective c 导航栏隐藏,不工作,objective-c,uinavigationcontroller,Objective C,Uinavigationcontroller,嗨,我是iOS开发的新手。我有一个主屏幕与导航栏隐藏真实。从那里,我使用back segue导航到另一个视图。但当我点击后退时,它会在主屏幕上显示导航栏。这是我的问题描述 在主屏幕onviewload中,我正在执行以下操作: self.navigationController.navigationBarHidden = YES; 一旦用户在新控制器中使用back segue转到另一个视图,我将执行以下操作 self.navigationController.navigationBarHidde
self.navigationController.navigationBarHidden = YES;
一旦用户在新控制器中使用back segue转到另一个视图,我将执行以下操作
self.navigationController.navigationBarHidden = NO;
现在,若我点击后退,它会在主窗口上显示我不想要的导航栏。基本上我希望主屏幕没有导航栏,下一个窗口有导航栏
如何做到这一点。我需要帮助。多谢各位 将代码放入视图将显示,而不是viewDidLoad,它应该可以正常工作。我有一个
选项卡viewcontroller
由4个选项卡组成,其中一个选项卡不需要导航栏,但其他选项卡需要导航栏
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
前面的答案都不能解决我的问题,这些代码可以
//隐藏App导航条,使用RN自己的导航条
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
// self.navigationController.navigationBarHidden = YES; //这句是 **完全没** 个卵用
// [self.navigationController setNavigationBarHidden:YES animated:NO];
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
//恢复App导航条
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.navigationController.navigationBar.hidden = NO;
// self.navigationController.navigationBarHidden = NO; //这句是 **完全没** 个卵用
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
不要使用
self.navigationController.navigationBarHidden = YES;
你应该使用
self.navigationController.navigationBar.hidden = NO;
对于Swift 4,将在视图中添加以下内容
self.navigationController?.setNavigationBarHidden(false, animated: false)
self.navigationController?.setNavigationBarHidden(假,动画:假)
将上面的代码行放入viewwillbeen而不是viewDidLoad。原因-在
viewDidLoad
中,navigationController
尚未分配。@Sulthan,不是true。如果在viewDidLoad中记录self.navigationController,您将看到它已经存在。只是导航栏的隐藏状态是在导航控制器级别设置的,所以如果您在一个控制器中将其设置为“无”,它将一直保持这种状态,直到您在所有其他控制器中更改它为止。将代码放在每个控制器的ViewWillAspect方法中可确保在该控制器出现时将其重置。Hello rdelmar代码在viewDidLoad或ViewWillAspect中均不起作用。。。任何想法。。。。self.navigationController.navigationBarHidden=是;