2017-02-03 56 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) 
}