O'Reilly logo

iOS 5 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.10. Displaying an Image on a Navigation Bar

Problem

You want to display an image instead of text as the title of the current view controller on the navigation controller.

Solution

Use the titleView property of the view controller’s navigation item:

- (void)viewDidLoad{
  [super viewDidLoad];
  self.view.backgroundColor = [UIColor whiteColor];

  /* Create an Image View to replace the Title View */
  UIImageView *imageView =
  [[UIImageView alloc]
   initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 40.0f)];

  imageView.contentMode = UIViewContentModeScaleAspectFit;

  /* Load an image. Be careful, this image will be cached */
  UIImage *image = [UIImage imageNamed:@"FullSizeLogo.png"];

  /* Set the image of the Image View */
  [imageView setImage:image];

  /* Set the Title View */
  self.navigationItem.titleView = imageView;

}

Note

The preceding code must be executed in a view controller that is placed inside a navigation controller.

Discussion

The navigation item of every view controller can display two different types of content in the title area of the view controller to which it is assigned:

  • Simple text

  • A view

If you want to use text, you can use the title property of the navigation item. However, if you want more control over the title or if you simply want to display an image or any other view up on the navigation bar, you can use the titleView property of the navigation item of a view controller. You can assign any object that is a subclass of the UIView class. In our example, we created an image view and assigned ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required