CustomNavigation.h
CustomNavigation.m
@implementation UINavigationBar (UINavigationBarCustomDraw) - (void) drawRect:(CGRect)rect { [self setTintColor:[UIColor colorWithRed:0.5f green: 0.5f blue:0 alpha:1]]; if ([self.topItem.title length] > 0) { if ([self.topItem.title isEqualToString:@"First"]) { [[UIImage imageNamed:@"First.png"] drawInRect:rect]; } else if ([self.topItem.title isEqualToString:@"Second"]) { [[UIImage imageNamed:@"Second.png"] drawInRect:rect]; } CGRect frame = CGRectMake(0, 0, 320, 44); UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease]; [label setBackgroundColor:[UIColor clearColor]]; label.font = [UIFont boldSystemFontOfSize: 20.0]; label.shadowColor = [UIColor colorWithWhite:0.0 alpha:1]; label.textAlignment = UITextAlignmentCenter; label.textColor = [UIColor whiteColor]; label.text = self.topItem.title; self.topItem.titleView = label; } else { [[UIImage imageNamed:@"wood.png"] drawInRect:rect]; self.topItem.titleView = [[[UIView alloc] init] autorelease]; } } @end
if u wants First.png to set the navigationBar background image to FirstViewController, then
in ur FirstViewController.m
-(void) viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; self.title=@ "First"; [self.navigationController.navigationBar drawRect:CGRectMake(0, 0, 320, 480)]; }
if u wants Second.png to set the background image of navigationBar to SecondViewController, then
in ur SecondViewController.m
-(void) viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; self.title=@ "Second"; [self.navigationController.navigationBar drawRect:CGRectMake(0, 0, 320, 480)]; }
Vijay-Apple-Dev.blogspot.com
source share