旧有模块清理,把自定义的navigationbar 改成 category。
具体的还需要自己填充。
以下方法尚有问题,请不要使用,空闲下来就重新修正
如下
UIViewController+XM_Nav.h
#import <UIKit/UIKit.h> @interface UIViewController (XM_Nav) -(void)XM_SetTitleText:(NSString *)title; -(void)XM_SetButtonImage:(NSString *)image isRight:(BOOL)isRight Target:(id)target Selector:(SEL)selector; -(void)XM_SetBgImage:(NSString *)image; @end
UIViewController+XM_Nav.m
-(void)XM_SetTitleText:(NSString *)title{ self.navigationController.navigationBar.topItem.title = title; UIFont* font = [UIFont fontWithName:@"Arial-ItalicMT" size:21.0]; NSDictionary* textAttributes = @{NSFontAttributeName:font, NSForegroundColorAttributeName:[UIColor blackColor]}; [self.navigationController.navigationBar setTitleTextAttributes:textAttributes]; } -(void)XM_SetButtonImage:(NSString *)image isRight:(BOOL)isRight Target:(id)target Selector:(SEL)selector { UIButton *abutton = [[UIButton alloc]initWithFrame:CGRectMake(0.0, 0.0, 60.0, 40.0)]; [abutton setImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; [abutton addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside]; CGSize navSize = self.navigationController.navigationBar.frame.size; CGSize butSize = abutton.frame.size; if (isRight) { abutton.frame = CGRectMake(navSize.width- 20 - butSize.width, 0.0, butSize.width, butSize.height); }else{ abutton.frame = CGRectMake(20.0, 0.0, butSize.width, butSize.height); } [self.navigationController.navigationBar addSubview:abutton]; } -(void)XM_SetBgImage:(NSString *)image{ UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image]]; self.navigationController.navigationBar.topItem.titleView = imageView; }