iOS – 仅在一个视图上隐藏导航栏?

我有一个登录视图控制器,在成功登录后,将我的用户推送到另一个视图控制器(ViewControllerB)。 话虽这么说,ViewControllerB嵌入在UINavigationController中,我已经用菜单按钮格式化了。

因为我正在使用来自登录视图控制器的push segue,所以这个segue会导致我的UINavigationBar被空白的导航栏和后退按钮覆盖(不是很酷)。 也就是说,我尝试使用以下代码从登录视图控制器隐藏导航控制器:

loginviewcontroller.m

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

当我这样做时,带有覆盖我的另一个导航栏的后退按钮的不需要的导航栏将被删除! 大。 然而,当我导航到其他屏幕时,我的导航栏仍然隐藏(我想让它在我的用户通过ViewControllerB后出现)。

我成功登录时尝试使用模态segue,但当然,这使我无法在登录时导航到其他具有segue的屏幕。

知道我怎么能这样做吗?

添加这个:

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

你应该从你的第一个Viewcontroller或你的loginViewController嵌入UINavigationController,在这个ViewController你将隐藏导航栏,你可以取消隐藏导航栏的下一个viewController。 它对我有用。

迅捷3

 override func viewWillAppear(_ animated: Bool) { //for hide navigation bar in current view super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: animated) } override func viewWillDisappear(_ animated: Bool) { //for unhide in navigation bar in next/previous view super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(false, animated: animated) }