如何隐藏根视图中的导航控制器?

请帮助我在根视图中隐藏导航控制器。 我已经find了解决scheme在我需要的每个视图控制器中写[navigationController setNavigationBarHidden:YES] 。 那么,它的工作,但只有第一次:我运行的应用程序,在根视图我没有导航,然后我去第二个视图 – 导航出现,确定。 但后来我在导航控制器中按“返回”,从根视图导航并没有消失。 我和xib一起工作。

在rootViewController中

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

在第二个视图(旁边的rootViewController)

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

试试这个

在你所有的视图控制器上使用这一行代码

 [navigationController setNavigationBarHidden: YES animated:YES]; 

如果不需要animation,则可以执行animation:NO,并在viewDidLoad中添加此代码,或将其添加到viewWillAppear或viewDidAppear。

在你的情况

 [navigationController setNavigationBarHidden:YES animated:NO]; 

在你的rootViewController上,和

 [navigationController setNavigationBarHidden:NO animated:YES]; 

在你的其他viewControllers

隐藏导航栏所有视图控制器的视图都会出现方法。

 -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [navigationCOntroller setNavigationBarHidden:YES animated:animated]; } 

我相信你正在使用标签栏控制器。

您的代码正在为第一个视图控制器工作,因为您只有代码。 对于第二个视图控制器,它会默认,因此对于第二个视图控制器,你会看到导航栏。

要隐藏所有视图控制器的导航栏,请将隐藏的代码放在所有视图控制器的viewWillAppear中

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