2015-06-16 4 views
7

Desidero cambiare il colore di UINavigationBar a livello globale per l'intera applicazione da AppDelegate. Perché lo faccio:Come modificare il colore di UINavigationBar a livello globale?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 
UINavigationBar.appearance().tintColor = UIColor(red: 63, green: 172, blue: 236, alpha: 1) 
} 

ma, non so perché, non cambia il colore della mia barra di navigazione.

ho avuto collegare barra di navigazione come Editor > Embed In > Navigation Controller

Come posso impostare il colore per NavBar?

+1

possibile duplicato di [Come cambiare colore di sfondo UINavigationBar dal delegato app] (http://stackoverflow.com/questions/17014713/how-to-change-uinavigationbar-background- color-from-the-app-delegate) – hyd00

+1

Hai appena dimenticato di dividere con 255 e utilizzare il barTintColor per impostare il colore per la barra di navigazione. Ho aggiunto una risposta. Spero che aiuti –

risposta

17

impostato barTintColor

UINavigationBar.appearance().barTintColor = UIColor(red: 63.0/255.0, green: 172.0/255.0, blue: 236.0/255.0, alpha: 1.0) 

Credo che ti sei dimenticato di dividere con 255

Per spegnere il translucent. Nel tuo primo controller di root fai come segue.

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController!.navigationBar.translucent = false 
} 

Swift 3:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController!.navigationBar.isTranslucent = false 
} 

La mia uscita:

enter image description here

+0

ma come posso disabilitare la trasparenza della barra? –

+0

quando provo 'navigationBar.translucent = false' lo rende bianco =/ –

+0

Provo' UINavigationBar.appearance(). Translucent = false' e ​​mi dà la barra bianca –

0

Utilizzare questa

navigationController.navigationBar.barTintColor = UIColor.greenColor() 
+0

'Uso dell'identificatore non risolto 'navigationController'' error –

+0

creare la proprietà per navigationController in appdelegate.h e connettersi al tuo navigationController – suthar

0

È possibile utilizzare questa

Objective C: 

    self.navigationController.navigationBar.barTintColor = [UIColor yellowColor]; 

Swift: 

self.navigationController.navigationBar.barTintColor = UIColor.yellowColor() 

Ti renderà la barra di navigazione con il colore giallo.

PS: non utilizzare tintColor, il colore della tinta è per i titoli dei pulsanti posteriori.

Una barra di navigazione ha anche altre proprietà. Puoi controllarli anche sul sito Apple & puoi applicare le soluzioni secondo le tue necessità.

https://developer.apple.com/reference/uikit/uinavigationbar