In my app, i want to add image(logo) in Navigation bar. I am working on XCode 4.2 and iOS 5.
I know UINavigationBar
, UIToolBar
has been changed in iOS 5. So iOS 4.2 UINavigationBar
code won't work in iOS 5.
I want to support display image in UINavigationBar
in both 4.2 and 5 version.
I want to be display image in UINavigationBar
like as in below screenshot.
Please help in this regards and if there is any sample code means its very helpful to me.
Thanks!!!
One way to do this is to use UINavigationItem.titleView
and UINavigationItem.rightBarButtonItem
. Like this :
viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];
viewController.navigationItem.rightBarButtonItem = item;
Here I am using UIImageView
as custom view, but it can be UIButton
with custom image.
Another way without using a viewController
// Create your image
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];
// set the image view to the title view
self.navigationItem.titleView = imageview;
Swift version:
You can create a protocol extension for using the function in your view controllers
protocol Customizable {
var navigationItem: UINavigationItem { get }
}
extension Customizable {
func setNavBarLogo() {
let logo = UIImage(named: "logo")
let logoImageView = UIImageView(image: logo)
self.navigationItem.titleView = logoImageView
}
}