2009-10-24 162 views

回答

95

將此代碼放入您想要隱藏導航欄的視圖控制器中。

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

而且您可能還需要在堅持這裏面,根據您的需要:

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

我想添加到這個問題,如何讓它隱藏/顯示,當用戶點擊它在哪裏。即:像在照片應用程序。 – JoePasq

+3

當您需要隱藏導航欄時,您只需將該setNavigationBarHidden調用放在任何位置即可。 –

+0

好一個這對我有用。 –

0

對於iOS 8 可以圍繞這一工作可以工作

CATransition* transition = [CATransition animation]; 
     transition.duration = 0.3; 
     transition.type = kCATransitionPush; 
     transition.subtype = kCATransitionFromRight; 
     [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; 
     [self.navigationController setNavigationBarHidden:TRUE animated:FALSE]; 
     [self.navigationController pushViewController:productViewObj animated:FALSE]; 
     [productViewObj.navigationController setNavigationBarHidden:TRUE animated:FALSE]; 
     [productViewObj release]; 
2

這裏的如何在Swift 3

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.setNavigationBarHidden(true, animated: animated) 
} 

P.S.我發現如果將動畫設置爲false,則推動時會出現黑條。但是當它被設置爲true它絲綢般光滑!