导航栏自带的按钮,时常不能满足要求,所以深深需要进行各种定制.
写一个UINavigationItem的category
// UINavigationItem+CB_ChangeButton.h
@interface UINavigationItem (CB_ChangeButton) - (void) CB_SetRightButton:(UIButton *)button; - (void) CB_SetLeftButton:(UIButton *)button; - (void) CB_SetNavigationTitle:(NSString *)title; @end
// UINavigationItem+CB_ChangeButton.m
#import "UINavigationItem+CB_ChangeButton.h" @implementation UINavigationItem (CB_ChangeButton) - (void) CB_SetRightButton:(UIButton *)button { UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView: button]; self.rightBarButtonItem = rightItem; } - (void) CB_SetLeftButton:(UIButton *)button { UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView: button]; self.leftBarButtonItem = leftItem; } - (void) CB_SetNavigationTitle:(NSString *)title { UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake( 0, 0, 320, 44)]; label.text = title; label.textColor = [UIColor whiteColor]; label.font = FONT; label.textAlignment = NSTextAlignmentCenter; self.titleView = label; } @end