Этот код может изменять цвет UINavigationBar
везде в приложении. Тем не менее, я заметил, что не изменяет UIColor
UINavigationBar
, используемыйUINavigationController
(шахта исходит от UIStoryboard
).UINavigationController изменение цвета панели навигации оттенок глобально и программно
UIColor* navBarColor = [UIColor colorWithRed:arc4random()%100/100.0
green:arc4random()%100/100.0
blue:arc4random()%100/100.0
alpha:1];
[[UINavigationBar appearance] setTintColor:navBarColor];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setAlpha:0.7];
Есть ли способ, чтобы получить доступ к appearance
объекту UINavigationController's
панели навигации в? Я знаю, как устанавливать оттенки отдельных контроллеров, но я хочу иметь глобальный контроль над тем, как они выглядят.
Update: Это была моя ошибка, код действительно изменить UIColor
всех UINavigationBars
, но требует контроллер корневого навигационный быть покрытые и непокрытые (например, представляющий модальный контроллер представления), то он будет перерисовать сам с новым UIColors
!
Спасибо!
Обратите внимание, что '' UITextAttributeTextColor' и UITextAttributeShadowColor' устарели - использовать '' NSForegroundColorAttributeName' и NSShadowAttributeName' вместо этого. – thomers