2014-10-05 2 views
0

Я настраиваю UINavigationBar с другим цветом и настраиваемым шрифтом, используя titleTextAttributes. Однако, когда я перешел к другому представлению, я хотел бы использовать другой цвет из предыдущего с тем же настраиваемым шрифтом.Настройка того же UINavigationBar в приложении несколько раз

Я использовал,

[[UINavigationBar appearance] setTitleTextAttributes:mySettings] 

в AppDelegate.m. Когда вы вызываете тот же метод с newSettings в viewDidLoad другого viewController, он не находит отражение.

Я могу изменить цвет цвета бара или цвета оттенка штриха в viewDidLoad другого viewController. Однако мой цвет переднего плана не меняется. Я что-то пропустил?

Последнее решение, которое должно иметь пользовательское названиеView. Но хотел избежать этого. Любые входы?

ответ

0

[[UINavigationBar appearance] setTitleTextAttributes:mySettings]глобальная конфигурация, поэтому причина ее изменения в других контроллерах представления не работает. Я считаю, что вы не будете получать вокруг настройки 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. Я изменил код, чтобы использовать метку как titleView. Во-вторых, поскольку существует множество представлений, в которых требуются такие изменения, создана категория для UINavigationController. У меня была проблема с navigationController.navigationItem Vs. UIViewController.navigationItem для установки titleView. Эта ссылка помогла мне http://stackoverflow.com/questions/16913332/navigationcontroller-navigationitem-vs-navigationitem – Abhay