Questo codice può cambiare il colore di uno UINavigationBar
ovunque all'interno dell'applicazione. Tuttavia, ho notato che non modifica lo UIColor
dello UINavigationBar
utilizzato daUINavigationController
(il mio proviene da uno UIStoryboard
).UINavigationController modifica la barra di navigazione tinta a livello globale e programmaticamente
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];
Esiste un modo per accedere all'oggetto di una barra di navigazione UINavigationController's
appearance
? So come impostare le tinte dei singoli controller, ma voglio avere un controllo globale sul loro aspetto.
Update: Questo è stato il mio errore, il codice non cambia il UIColor
di tutti UINavigationBars
, ma richiede il controller di navigazione principale per essere coperti e scoperti (ad esempio, la presentazione di un controller di vista modale), allora si ri-draw stesso con nuovo UIColors
!
Grazie!
Si noti che '' UITextAttributeTextColor' e UITextAttributeShadowColor' sono stati deprecati - utilizzare '' NSForegroundColorAttributeName' e NSShadowAttributeName' invece. – thomers