dyqrfa
Last Updated: August 07, 2019
·
249.2K
· itseranga

Customize navigation bar appearance with swift

Change navigation bar color

  • In order to change color of navigation bar for all view controllers, you have to set it in AppDelegate.swift file

  • Add following code to didFinishLaunchingWithOptions function in AppDelegate.swift

var navigationBarAppearace = UINavigationBar.appearance()

navigationBarAppearace.tintColor = uicolorFromHex(0xffffff)
navigationBarAppearace.barTintColor = uicolorFromHex(0x034517)
  • In here tintColor attribute change the background color of the navigation bar

  • barTintColor attribute affect to the color of the

  1. back indicator image
  2. button titles
  3. button images
  • This code not affect to the color of navigation bar title. It still remains on black color

Picture

Picture

Change color of navigation bar title

  • Add following code to didFinishLaunchingWithOptions function in AppDelegate.swift
var navigationBarAppearace = UINavigationBar.appearance()

navigationBarAppearace.tintColor = uicolorFromHex(0xffffff)
navigationBarAppearace.barTintColor = uicolorFromHex(0x034517)

// change navigation item title color
navigationBarAppearace.titleTextAttributes =[NSForegroundColorAttributeName:UIColor.whiteColor()]
  • titleTextAttributes affect to the title text, in here I'm setting the title text color white

Picture

Programatically change navigation bar title

  • In order to change title of the navigation item(in ViewController) you have to set the title in viewDidLoad function of ViewController
override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationItem.title = "New title"
}
  • Following is an example output after this change

Picture

Change status bar color

  • In above examples status bar color is Black

  • In order to change the color of status bar we have do two changes

  • First define the property of view controller-based status bar property in your info.plist file(In setting it to NO)

Picture

  • If you open it via vim (vim <path to project>/info.plist) you can see it contains a property call UIViewControllerBasedStatusBarAppearance with false value

Picture

  • Then define the color of status bar in didFinishLaunchingWithOptions function in AppDelegate.swift (This will affect to all view controllers in your app, since it define in AppDelegate.swift)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent

Picture

Define colors in hex values

  • In above codes I have define a custom function to define the colors as hex values
func uicolorFromHex(rgbValue:UInt32)->UIColor{
    let red = CGFloat((rgbValue & 0xFF0000) >> 16)/256.0
    let green = CGFloat((rgbValue & 0xFF00) >> 8)/256.0
    let blue = CGFloat(rgbValue & 0xFF)/256.0

    return UIColor(red:red, green:green, blue:blue, alpha:1.0)
}

27 Responses
Add your response

16180

how can I set NavigationBar programmatically without StoryBoard?
I added in viewDidLoad()

self.navigationItem.title = "New Title"
but it doesn't work. :(

over 1 year ago ·
16374

@xperad: If you just added a UINavigationBar (not a UINavigationController), you'll have to use the following to set the title.

self.navigationBar.topItem.title = "New Title"

over 1 year ago ·
16375

In enums in Swift, you can just use the value without specifying the name of the enum Like so,

UIApplication.sharedApplication().statusBarStyle =.LightContent

over 1 year ago ·
17566

I'm trying to change navigation bar color but in my AppDelegate.swift, there is no function didFinishLaunchingWithOptions. It's passed in to the application function.
So where do I add the code to customize the navigation bar.

over 1 year ago ·
17800

Any idea how to align the title to the left?

over 1 year ago ·
18248

Could you provide an example with a blurred background on the navigation bar? :)

over 1 year ago ·
19504

you could just do self.title = "New Title" in the viewDidLoad

over 1 year ago ·
20822

Is there a way to remove "<" when i go to next screen.

over 1 year ago ·
22159

You're rgb division is off its not 256 but 255

over 1 year ago ·
28202

@venkatp, to hide the backButton:
navigationItem.setHidesBackButton(true, animated: false)

over 1 year ago ·
28686

You used a variable and named it navigationBarAppearace and you meant navigationBarAppearance

over 1 year ago ·
29148

download tutuapp from this site https://tutuapp-helper.com/ to install the paid apps for free on iPhone.

over 1 year ago ·
29411

barTintColor - is a color of background. Not tint color.
For example, to modify the bar background tint color for all instances of UINavigationBar:
[[UINavigationBar appearance] setBarTintColor:myNavBarBackgroundColor];

https://developer.apple.com/documentation/uikit/uiappearance

over 1 year ago ·
29675

Navigation is not displaying on the screen but it shows on developer mode. Please help me to resolve it. https://babasupport.org/email/zohomail-customer-service/994

over 1 year ago ·
30077

Nice Tactics and short keys are mentioned in this article because of navigation bar appearance controlling over swift is the best way to handle this bar https://crumbles.co/xbox-customer-service-number/

over 1 year ago ·
30818

Many time navigation is not display on the screen but it shows on programming mode. Everything is possible on the programming language.

https://uaetechnician.ae/web-development-services

11 months ago ·
31071

I'm trying to change navigation bar color but in my AppDelegate.swift, there is no function didFinishLaunchingWithOptions. It's passed in to the application function.
So where do I add the code to customize the navigation bar.For Toshiba Error Code 0xc0000225 related issue you can visit to the https://www.toshibasupportphonenumber.com/blog/how-to-fix-toshiba-error-code-0xc0000225-in-windows-10/ and they really helped me.

10 months ago ·
31101

Hey! great appearance of navigation bar with swift..........for any problem with HP printer in error state just take help from http://printertechsupportnumbers.com/blog/fix-hp-printer-error-state-windows-10/

10 months ago ·
31804

Visit https://mywifiext-net.support/netgear-extender-setup/ and get rid of all extender problems.

7 months ago ·
31856

barTintColor - is a color of background. Not tint color.
For example, https://showbox.bio/ to modify the bar https://tutuapp.uno/ background tint color for all instances of
https://vidmate.vet/ UINavigationBar:
[[UINavigationBar appearance] setBarTintColor:myNavBarBackgroundColor];

6 months ago ·
32093

Thanks for sharing such amazing shortcuts.

6 months ago ·
32126

Yes, It's Working Customize navigation bar appearance with swift..

https://showbox.news/apk/

5 months ago ·
32152

Change status bar color
• In above examples status bar color is Black
• In order to change the color of status bar we have do two changes
• First define the property of view controller-based status bar property in your info.plist file(In setting it to NO)
https://play.google.com/store/apps/details?id=com.app.crazycrush

5 months ago ·
32358

HMM THINK THIS THE PROBLEM https://itunes.apple.com/us/app/crazy-krush/id1454524594 IS THE BEST OPTION.

5 months ago ·
33093
33750

Thanks for the awesome tutorial! I think that Swift is better and simpler than Java for Android mobile app development. <a href="https://zaven.co/">Software development</a> will not be the same from now on!</p>

2 months ago ·
34477

Hey, this was awesome Search Go Cab: Local Cab Service | taxi app | Cab App: https://play.google.com/store/apps/details?id=com.rider.search_go

about 1 month ago ·