Change the color of iOS Navigation Bar Change the color of iOS Navigation Bar swift swift

Change the color of iOS Navigation Bar


In fact, i found that the solution was to use in the AppDelegate.siwft :

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {    // Override point for customization after application launch.    UINavigationBar.appearance().barTintColor = UIColor(red: 0, green: 0/255, blue: 205/255, alpha: 1)    UINavigationBar.appearance().tintColor = UIColor.whiteColor()    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]    return true}

and then in each view controller, that we need another background color or something else

  1. the segue should be different than "show"

  2. use the func viewWillAppear

     override func viewWillAppear(animated: Bool) {     super.viewWillAppear(animated)     self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()     self.navigationController?.navigationBar.tintColor = UIColor.blueColor()     self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.blueColor()]}


Updated for Swift 3

    UINavigationBar.appearance().barTintColor = .black    UINavigationBar.appearance().tintColor = .white    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]    UINavigationBar.appearance().isTranslucent = false

Swift 4

    UINavigationBar.appearance().barTintColor = .black    UINavigationBar.appearance().tintColor = .white    UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]    UINavigationBar.appearance().isTranslucent = false

Swift 5

    UINavigationBar.appearance().barTintColor = .black    UINavigationBar.appearance().tintColor = .white    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]    UINavigationBar.appearance().isTranslucent = false


Swift 4.2:

    //To change Navigation Bar Background Color    UINavigationBar.appearance().barTintColor = UIColor.blue    //To change Back button title & icon color    UINavigationBar.appearance().tintColor = UIColor.white    //To change Navigation Bar Title Color    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]

Swift 3.x:

//To change Navigation Bar Background ColorUINavigationBar.appearance().barTintColor = UIColor.blue//To change Back button title & icon colorUINavigationBar.appearance().tintColor = UIColor.white//To change Navigation Bar Title ColorUINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]