Sto costruendo un'app con molti controller di vista: ho uno UITabBarController
che contiene 4 UINavigationController
. Voglio che tutti i bar nav di essere il mio colore personalizzato, dico blu, che ho ottenere facendo questo nella mia app delegato:iOS 5: è possibile sovrascrivere le personalizzazioni della visualizzazione UIA in classi specifiche?
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
ma ho anche un controller di vista speciale che ha una mappa, e per questo punto di vista controller Voglio sovrascrivere il set blu della barra di navigazione usando UIAppearance
per renderlo lo stile opaco nero. Ho provato chiamando questo all'interno viewDidLoad
:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = YES;
ma non succede nulla. Può essere fatto o devo abbandonare UIAppearance e impostare le proprietà su navigationBar
manualmente per ogni controller di visualizzazione?
La vista del mio 'SpecialViewController' viene semplicemente spinta nello stack del controller nav. Ho creato la gerarchia delle viste in uno Storyboard, quindi nessuno dei miei controller di vista ha un puntatore al controllore nav in questione. Per come la capisco, la UINavigationBar in questione deve essere contenuta all'interno di una classe contenitore con il proxy di aspetto con cui parlo. Significa che devo abbandonare lo storyboard? – lms
La chiamata a setTranslucent su un proxy di aspetto non funziona in realtà. Dice 'Tipo di proprietà illegale, c nel selettore di invocazione, _UIAppearance_setTranslucent: '' –