How to change the font and text color of the title of UINavigationBar How to change the font and text color of the title of UINavigationBar ios ios

How to change the font and text color of the title of UINavigationBar


I use this:

Update, it seems this is needed as well:

    self.navigationController?.navigationBar.barStyle       = UIBarStyle.Black // I then set the color using:    self.navigationController?.navigationBar.barTintColor   = UIColor(red: 204/255, green: 47/255, blue: 40/255, alpha: 1.0) // a lovely red    self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() // for titles, buttons, etc.    let navigationTitleFont = UIFont(name: "Avenir", size: 20)!    self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: navigationTitleFont]


If you want the styles to be applied through out the whole app add these lines in the AppDelegate.m file.

NSShadow* shadow = [NSShadow new]; shadow.shadowOffset = CGSizeMake(0.0f, 0.0f); shadow.shadowColor = [UIColor blackColor]; [[UINavigationBar appearance] setTitleTextAttributes: @{NSForegroundColorAttributeName: [UIColor whiteColor],NSFontAttributeName: [UIFont fontWithName:@"Kelvetica Nobis" size:20.0f],NSShadowAttributeName: shadow }];

NSForegroundColorAttributeName sets the Font color.

NSFontAttributeName sets a custom font face to the title text.

NSShadowAttributeName applies a nice shadow effect to the text, you can remove this part if you want.

Also in advance, you can add these line to hide the text that comes up in back button in action bar when you navigate to another view within the navigation controller.

[[UIBarButtonItem appearance]     setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, -1000)     forBarMetrics:UIBarMetricsDefault];

Hope this help your question :)


In case someone needs this in Swift 4:

let navBarAppearance = UINavigationBar.appearance()navBarAppearance.barTintColor = .rednavBarAppearance.tintColor = .whitenavBarAppearance.titleTextAttributes = [        NSAttributedString.Key.foregroundColor: UIColor.white,        NSAttributedString.Key.font: UIFont(name: "Avenir", size: 20)!]