2011-08-23 74 views
4

我想要隱藏UINavigationBar自動加載導航項目的第一個視圖,我想知道如何使這項工作。如何隱藏我的第一個視圖的UINavigationBar

我試圖做這樣的

//RootViewController.m

#import "mydelegate.h" //-- this is where the view controller is initialized 

//... 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    navigationController *navController = [[navigationController alloc] init]; 
    [navigationController setNavigationBarHidden:YES animated:animated]; 
} 

//..... 

但是我得到錯誤,因爲我想我沒有從委託文件調用navigationController跨越正常,或者這是隻是不可能像你從另一個班級來的方法那樣稱呼它。

任何幫助將不勝感激。

回答

6

您是否正在訪問UINavicationController的正確實例? 您可以通過self.navigationController從已添加到其堆棧的任何UIViewController訪問UINavigationController。

否則,也許這會幫助: iPhone hide Navigation Bar only on first page

+0

啊對!這工作:)謝謝,我需要閱讀如何添加到導航堆棧。 [self.navigationController setNavigationBarHidden:YES animated:NO]; –

+0

沒問題。建議閱讀Apple文檔的「概述」和「任務」部分:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html –

+0

歡呼聲,將立即檢查。 。這是我第一次開始在ios開發中的時候,我讀了一大堆蘋果文檔的東西,但當時並沒有理解它的大部分內容,所以也許再也不用回頭刷新了。 –

8

有幾件事情錯在這裏。

  1. 您應該訪問使用self.navigationController來呈現視圖控制器的導航控制器。你的代碼片段正在創建一個新的UINavigationController;隱藏該欄不會給你任何東西。
  2. 您應該將其隱藏在viewWillAppear:中,而不是隱藏viewDidLoad中的導航欄。您可以隱藏導航欄viewDidLoad,導航欄在視圖最初呈現時將隱藏,但如果您要推送另一個呈現導航欄並點擊後退按鈕的視圖,導航欄將保持可見狀態。

viewWillAppear:應該是這個樣子:

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

而且viewWillAppear:方法,你把這個導航控制器上應顯示或隱藏相應的導航欄的其他視圖控制器。

+0

這不起作用。在調用super的'viewWillAppear'方法之前,您需要交換線條並設置導航欄隱藏。 –

+0

我不知道該告訴你什麼。這是我在我的應用程序中的方式,它工作正常。 –

+0

@JoseIbanez這對我有用 – Loozie

-1

iPhone hide Navigation Bar only on first page

試試這個答案。它解決了我的問題。

我遇到了導航欄的問題。我可以讓它消失,但當它需要的時候我不能讓它重新出現。這個鏈接解釋瞭如何解決這個問題,只需在viewWillAppear中打開它,然後在viewWillDisappear中關閉。

+0

你好,歡迎來到Stackoverflow。請閱讀指導好的答案:http://stackoverflow.com/questions/how-to-answer。其中一條規則是向鏈接添加上下文,而不是僅粘貼鏈接。你應該提供一個有效的答案,而不需要用戶導航到另一方,但可能希望這樣做以獲得答案的更多細節。當由於某種原因鏈接失效時,這會變成更大的問題。 – bitoiu

相關問題