设置导航栏的相同的返回按钮图片,相同的字体和相同的背景色

//1,继承UINavigationController

#import <UIKit/UIKit.h>


@interface BaseNavigationController : UINavigationController


@end



#import "BaseNavigationController.h"

#import "UIBarButtonItem+XQ.h"

#import "MainViewController.h"

@interface BaseNavigationController ()


@end


@implementation BaseNavigationController

+ (void)initialize

{

    UINavigationBar *bar = [UINavigationBar appearance];

    [bar setBackgroundImage:[UIImage imageNamed:@"greenColor.png"] forBarMetrics:UIBarMetricsDefault];

    //背景色

//    [bar setBarTintColor:[UIColor yellowColor]];


    // 设置导航栏标题文字

    NSMutableDictionary *dict = [NSMutableDictionary dictionary];

    dict[NSFontAttributeName] = [UIFont systemFontOfSize:20.0];

    dict[NSForegroundColorAttributeName] = [UIColor whiteColor];

//    dict[NSBackgroundColorAttributeName] = [UIColor redColor];

    [bar setTitleTextAttributes:dict];

    

    // 导航栏Item

    UIBarButtonItem *item = [UIBarButtonItem appearance];

    NSMutableDictionary *itemDict = [NSMutableDictionary dictionary];

    itemDict[NSFontAttributeName] = [UIFont systemFontOfSize:16.0];

    itemDict[NSForegroundColorAttributeName] = [UIColor redColor];

//    itemDict[NSBackgroundColorAttributeName] = [UIColor cyanColor];

    [item setTitleTextAttributes:itemDict forState:UIControlStateNormal];

  

}


- (void)viewDidLoad {

    [super viewDidLoad];

}


- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

{

    if ([viewController class] != [MainViewController class]) {

        //UIBarButtonItem+XQ.h 类中自定义了 UIBarButtonItem 的初始化方法

        viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem barButtonItemWithImage:@"backBarButtonItemImage" highImage:nil size:CGSizeMake(12, 21) target:viewController action:@selector(backBtnClick:)];

    }

    [super pushViewController:viewController animated:animated];

}

/**

 *  避免报警告

 *

 *  @param sender 

 */

-(void)backBtnClick:(id)sender{

}

@end


//2,继承UIViewController


#import <UIKit/UIKit.h>


@interface BaseViewController : UIViewController

//点击返回的方法,子类继承,在子类中写需要添加的内容

-(void)backBtnClick:(id)sender;//暴露外部方法,以便子类继承

@end


#import "BaseViewController.h"


@interface BaseViewController ()


@end


@implementation BaseViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view.

}


/**

 *  子类复写实现需要的功能

 *

 *  @param sender

 */

-(void)backBtnClick:(id)sender{

    NSLog(@"父类中点击了返回按钮");

    [self.navigationController popViewControllerAnimated:YES];

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


3,在继承父类 BaseViewController 的子类中就有了相同的navigationbar的title字体,背景色和返回图标



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值