I'd like an image to take up all of a navigation bar. This is the navigation that comes with a navigation based app. It appears on the RootViewController with the accompanying UITableView. I've seen some examples of how this might work.
Set navigation bar title:
UIImage *image = [UIImage imageNamed:@"TableviewCellLightBlue.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.navigationController.navigationBar.topItem setTitleView:imageView];
The problem there is it only covers the title rather than the entire navigation bar.
There is also this thread: http://discussions.apple.com/message.jspa?messageID=9254241#9254241. Towards the end, the solution looks to use a tab bar, which I'm not using. It is that complicated to set a navigation bar background? Is there some other simpler technique?
I'd like to have a background for the navigation and still be able to use title text.
its changed for ios6, to make it work in ios 6 use:
Add code in appdelegate did finish with launching method
Just add this line .
Bam! One line and done.
There is actually a much easier way to add a background image to any
UIView
class or subclass. It requires no class categorization or extension (subclassing), and you can do this on an "as needed" basis. For example, to add a background image to a view controller's navigation bar, do the following:You'll need to remember to add the Quartz Core framework to your project and add
#import <QuartzCore/QuartzCore.h>
wherever you need to do this. This is a much cleaner, simpler way to alter the drawing layer of anything that inherits fromUIView
. Of course, if you want to accomplish a similar effect for all navigation bars or tab bars, then subclassing makes sense.In your case, this solution found in another answer would work well.
With the "CustomImage" category added to UINavigationBar, you can then just call:
This code should go in the method
of the view controller where you want to have the custom image. And, in that case you should better call:
before setBackgroundImage (otherwise it will be added multiple times...)
just go the view controller and paste in super viewdidload and replace your image in mainlogo and then set the navigation title in set your image logo