2014-10-05 22 views
0

我使用titleTextAttributes自定義具有不同顏色和自定義字體的UINavigationBar。但是,當我移動到另一個視圖時,我想使用與以前具有相同自定義字體的不同顏色。多次在應用內定製相同的UINavigationBar

我都用過,

[[UINavigationBar appearance] setTitleTextAttributes:mySettings] 
在AppDelegate.m

。當在另一個viewController的viewDidLoad中調用與newSettings相同的方法時,它不會被反映出來。

我可以在另一個viewController的viewDidLoad中更改條形顏色或條形色調。但是,我的標題前景色沒有改變。我錯過了什麼?

最後的解決方案,我必須有自定義titleView。但是想避免它。任何投入?

回答

0

[[UINavigationBar appearance] setTitleTextAttributes:mySettings]global配置,所以這就是爲什麼在其他視圖控制器中更改它不起作用的原因。我相信你不會讓周圍定製導航項目的titleView財產,...:/

您可以通過創建具有您想,然後將其分配給屬性設置一個UILabel做到這一點:

NSAttributedString *title = [[NSAttributedString alloc] string:"the title" attributes:mySettings]; 
UILabel *newTitleView = [[UILabel alloc] init]; 
newTitleView.attributedText = title; 
self.navigationItem.titleView = newTitleView; 
+0

謝謝@nburk。我已經更改了代碼,將title作爲titleView使用。其次,由於有很多視圖需要進行這種更改,所以創建UINavigationController類別。我有navigationController.navigationItem Vs.的問題。用於設置titleView的UIViewController.navigationItem。此鏈接幫助我http://stackoverflow.com/questions/16913332/navigationcontroller-navigationitem-vs-navigationitem – Abhay 2014-10-08 06:33:20