2015-06-16 22 views
7

Ich möchte UINavigationBar global für die gesamte Anwendung von der AppDelegate ändern. Dafür mache ich:Wie ändere ich die UINavigationBar-Farbe global?

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

aber ich weiß nicht warum, es ändert nicht die Farbe meiner Navigationsleiste.

hatte ich Navigationsleiste als Editor > Embed In > Navigation Controller

verbinden Wie kann ich die Farbe für NavBar eingestellt?

+1

möglich Duplikat von [Wie UINavigationBar Hintergrundfarbe von der AppDelegate ändern] (http://stackoverflow.com/questions/17014713/how-to-change-uinavigationbar-background- Color-from-the-app-delegate) – hyd00

+1

Sie haben gerade vergessen mit 255 zu teilen und benutzen die barTintColor um die Farbe für die Navigationsleiste einzustellen. Ich habe eine Antwort hinzugefügt. Hoffe, es hilft –

Antwort

17

gesetzt barTintColor

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

Ich glaube, Sie mit 255

Für wiederum zu teilen vergessen haben, aus dem translucent. In Ihrem ersten Root-Controller tun Sie es wie folgt.

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

Swift 3:

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

Meine Ausgabe:

enter image description here

+0

aber wie kann ich die Transparenz der Bar deaktivieren? –

+0

wenn ich versuche 'navigationBar.translucent = false' es macht es weiß =/ –

+0

Ich versuche' UINavigationBar.appearance(). Transluzent = false' und es gibt mir weißen Balken –

0

verwenden

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

'Verwendung von unaufgelösten Bezeichner 'navigationController'' Fehler –

+0

Eigenschaft für NavigationController in appdelegate.h erstellen und eine Verbindung zu Ihrem NavigationController – suthar

0

können Sie diese verwenden

Objective C: 

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

Swift: 

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

Es wird Sie Navigationsleiste mit gelber Farbe machen.

PS: Verwenden Sie nicht TintColor, Tönungsfarbe ist für Back-Tasten Titel.

Eine Navigationsleiste hat auch andere Eigenschaften. Sie können sie auch auf Apple-Website überprüfen & können Lösungen nach Ihren Bedürfnissen anwenden.

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