You can call
setBackgroundImage() on any navigation bar, providing an image to use and the bar metrics you want it to affect, and you're done. Bar metrics left you specify what sizes of bars you want to change: should this by all bars, just phone-sized bars, or just phone-sized bars on landscape?
Here's an example that changes the navigation bar background image to a file called "navbar-background.png" (you'll want to change that!) across all device sizes:
let img = UIImage(named: "navbar-background") navigationController?.navigationBar.setBackgroundImage(img, for: .default)
Available from iOS 5.0
Did this solution work for you? Please pass it on!
Other people are reading…
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Build for watchOS
Take your existing Swift skills to Apple's tiniest platform – check out Hacking with watchOS!