Ten kod może zmienić kolor UINavigationBar
wszędzie w obrębie aplikacji. Jednak zauważyłem, że to nie zmienia UIColor
z UINavigationBar
używany przezUINavigationController
(mój pochodzi od UIStoryboard
).UINavigationController zmienia kolor odcienia paska nawigacji globalnie i programowo
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];
Czy istnieje sposób, aby uzyskać dostęp do appearance
przedmiot barze UINavigationController's
nawigacji? Wiem, jak ustawić odcienie poszczególnych kontrolerów, ale chcę mieć globalną kontrolę nad tym, jak wyglądają.
Aktualizacja: To był mój błąd, kod nie zmienia UIColor
wszystkich UINavigationBars
, ale wymaga kontrolera nawigacyjnego korzeń być kryty i odkryty (na przykład prezentując modalne kontroler widoku), a następnie będzie ponownie remis sam z nowym UIColors
!
Dziękujemy!
Zauważ, że '' UITextAttributeShadowColor' UITextAttributeTextColor' i były przestarzałe - użyć 'NSForegroundColorAttributeName' i' NSShadowAttributeName' zamiast. – thomers