2015-11-06 120 views
0

在我的iPhone應用程序,我有以下視圖控制器的導航方案在我的故事板如何覆蓋「默認」導航欄?

導航器 - >視圖控制器A - >視圖控制器乙

我能夠在自定義導航欄View Controller A但我在界面構建器上設計的自定義導航欄並未顯示爲View Controller B。它只顯示「後退」按鈕。

我可以在界面構建器上爲「內部」視圖定義自定義導航欄嗎?我知道我可以通過編程來完成,但如果我能避免它,效果會更好。

+0

定義自定義導航欄。像標題和barbuttonitems或全新的視圖? – beyowulf

+0

@beyowulf:我從工具箱中添加了一個導航欄到'View Controller B',然後我改變了標題並添加了一個右鍵。沒有任何反映。 – StackOverflower

+0

閱讀@ bensarz答案。您不需要拖出導航欄。如果您的導航控制器設置正確,則其所有視圖控制器的視圖中都已提供了一個。但是,您必須單獨設置每一個。給每個它自己的標題和自己的barbuttonitems。 – beyowulf

回答

3

我想你可能會錯過理解中的重要元素。 UINavigationController擁有的UINavigationBar僅僅是每個視圖控制器的容器UINavigationItem。使用此導航項目添加/刪除特定於每個視圖控制器的按鈕。使用

自己例如:

UINavigationController(顯示其導航欄內的每個視圖控制器的導航項目) - >UIViewController A(包括UINavigationItem A,它有其自己的按鈕) - >UIViewController B(包括UINavigationItem B,它有自己的按鈕)

如果你想隱藏後退按鈕,你可以通過將每個視圖控制器內或在您的視圖控制器的超以下行這樣做:

self.navigationItem.hidesBackButton = true

如果希望所有視圖控制器具有相同的按鈕,你可能會更好過創建UIViewController基類,並添加適當的按鈕導航項目編程。確保你所有的視圖控制器都繼承自這個新的子類。

希望這會有所幫助!

+0

+1謝謝!所以沒有機會使用界面編輯器爲每個視圖控制器編輯導航欄? (使用我發佈在我的問題上的模式) – StackOverflower

+0

是的,您可以在界面構建器中執行此操作。只需從右下角拖動一個導航項目到您的視圖控制器。然後添加您希望視圖控制器在導航項目內顯示的按鈕。您可能必須以編程方式隱藏後退按鈕。 – bsarrazin

+0

很清楚,謝謝 – StackOverflower