Настройка одного и того же UINavigationBar в приложении несколько раз

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

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

[[UINavigationBar appearance] setTitleTextAttributes:mySettings]

в AppDelegate.m. При вызове того же метода с newSettings в viewDidLoad другого viewController это не отражается.

Я могу изменить цвет панели или цвет оттенка в viewDidLoad другого viewController. Тем не менее, цвет моего заголовка не меняется. Я что-то пропустил?

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

1 ответ

Решение

[[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; 
Другие вопросы по тегам