2012-09-08 274 views
0

這可能很簡單..但我不知道這裏最好的做法是什麼。iOS導航欄

我有一個帶有4個選項卡的tabbarcontroller,其中3個應該是UINavigationController,另一個應該也有UINavigationBar,但不應該是導航控制器本身。 現在我想給UINavigationBar一個色調和一個動作按鈕。我想在界面生成器中執行此操作。 navBar應該始終是同一個,我只想創建一次。

但我究竟會在哪裏做?我會創建一個只有UINavigationBar的.xib文件,並以某種方式鏈接到它?

我很困惑在這裏,大多數的教程只討論導航欄的ONE navController但對我來說,我需要爲不同ViewControllers一樣的吧..

+1

爲什麼你想要一個導航欄不同的視圖控制器?你說你只在其中一個選項卡中需要它。 –

回答

0

的NavBar自帶的navigationController或能夠獨立。它是UIView的一個子類。

您不能簡單地與所有控制器和非導航控制器共享您的navBar。我的意思是一個導航欄的一個實例。你甚至不能爲導航控制器設置導航欄。它只是可讀的。

在我的理解中,你試圖讓navbar看起來在每個控制器中都是一樣的,對嗎?
因此,您可以爲一個UINavigationController子類創建子對象,並在init方法中根據需要進行設置,並初始化此子類以將其添加到視圖中。

但是非UINavigationController navBar呢?
好吧,這很簡單:只需將您的子類別導航控制器添加到該選項卡即可。您不必將其用作NavController。您只需向標準ViewController添加視圖即可。

+0

謝謝!我subclassed uinavigationcontroller並在我的appdelegate中使用navcontrollers的子類。它以編程方式很好地工作(我將tint顏色設置爲紅色來嘗試),但有什麼方法可以自定義IB中的導航欄嗎?只是想知道.. – urz0r

+0

沒有沒有。這就是爲什麼我們都必須做我們的工作(編程)。 :-) – Fab1n