2017-02-03 55 views
2

我有一个登录视图控制器,成功登录后,将我的用户推送到另一个视图控制器(ViewControllerB)。话虽如此,ViewControllerB嵌入在我已经用菜单按钮格式化的UINavigationController中。iOS - 仅在一个视图中隐藏导航栏?

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

loginviewcontroller.m

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

当我做到这一点,与后退按钮不需要的导航栏覆盖我的其他导航栏被删除!大。但是,当我然后导航到其他屏幕,我的导航栏仍然隐藏(并且我希望它出现,一旦我的用户使它通过ViewControllerB)。

我尝试使用模式segue成功登录后,但当然,这使我无法导航到其他屏幕与登录后segues。

任何想法我可以怎么做呢?

回答

1

补充一点:

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

你应该从你的第一个视图控制器或您的loginViewController,并在此视图控制器,你会隐藏导航栏和你的下一个的viewController可以取消隐藏的导航栏embedin的UINavigationController。它为我工作。

0

SWIFT 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) 
}