2013-07-11 60 views
0

我正在尋找一種方法來讓導航欄不顯示在屏幕上。iOS - 如何不在屏幕上顯示導航欄?

我知道在導航欄上有一個setNavigationBarHidden:animated:,但在拆除和重新調整屏幕尺寸之前,這仍然會在屏幕上顯示一秒。

我已經試過移動setNavigationBarHidden:animated:viewDidLoad:viewWillAppear:等,並把它隱藏在以前的活動viewWillDisappear:但它會顯示出下一個屏幕上。

我該如何讓視圖在顯示之前加載一個導航欄?

感謝, DMAN

+0

檢查您是否有多個導航欄。 –

+0

@Parser我該怎麼做,故事板上只有一個導航控制器顯示在應用程序的開始處 – DMCApps

+0

您能在這裏分享故事板的截圖,希望您沒有編程導航。 –

回答

5

我隱藏導航欄對於AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中的UINavigationController,並且適用於我。在某些時候,在瀏覽屏幕時,我會顯示它,然後再隱藏它。奇蹟般有效。

UIViewController *controller = [[UIViewController alloc] init]; 
UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController: controller]; 
navCtrl.navigationBarHidden = YES; 

self.window.rootViewController = navCtrl; 
[controller release]; 
[navCtrl release]; 

希望這會有所幫助。

P.S.其實我再也不會顯示導航控制器的導航欄了。在需要酒吧的控制器上,我添加了一個新的。

+1

+1好的答案,請購買爲什麼不使用現有的導航欄而不是創建新的導航欄? – Caleb

+0

這是做這件事的好方法,所以我會給你答案......我的部分菜鳥錯了...我以前在控制器中顯示導航欄,並忘記刪除它,因爲我創建了一個處理隱藏(和其他事件)的主視圖... *嘆息* – DMCApps

+0

我使用navigationBarHidden屬性來隱藏它並被隱藏/在導航動畫期間顯示,我不想要。但你有一個好點。兩個控制器的'viewWillAppear:'方法中使用'setNavigationBarHidden:animated:'隱藏或顯示導航條動畫效果良好。 – alexbumbu

0

你可以嘗試做

setNavigationBarHidden:animated: 
在你看來

這是呼喚,你不想顯示它你打電話給你的新看法之前的觀點。如果他們有同樣的navigationcontroller,它應該已經是如果它如果沒有,你嘗試之前你現在它來設置它的導航奧德視圖 - 控制出現

隱藏...

+0

我已經做到了這一點,已將它添加到調用控制器的viewWillDisappear中。他們都應該是同一個導航控制器的一部分,這也讓我感到困惑,爲什麼當我從隱藏酒吧的視野中走出時爲什麼它不會隱藏,然後突然顯示在下一個酒吧。調用它的視圖已將其設置爲隱藏,但是一旦新控制器加載它,再次顯示 – DMCApps