iOS 开发中如何用图片替换系统自带backBarbuttonItem的图片

第一步你需要这样:

  [[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back"]];

  [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back"]];


第二步你需要这样:

#import <objc/runtime.h>

+(void)load{

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        Method originalMethodImp = class_getInstanceMethod(self, @selector(backBarButtonItem));

        Method destMethodImp = class_getInstanceMethod(self, @selector(myCustomBackButton_backBarbuttonItem));

        method_exchangeImplementations(originalMethodImp, destMethodImp);

    });

}


static char kCustomBackButtonKey;

-(UIBarButtonItem *)myCustomBackButton_backBarbuttonItem{

    UIBarButtonItem *item = [self myCustomBackButton_backBarbuttonItem];

    if (item) {

        return item;

    }

    item = objc_getAssociatedObject(self, &kCustomBackButtonKey);

    if (!item) {

        item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:NULL];

        objc_setAssociatedObject(self, &kCustomBackButtonKey, item, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    }

    return item;

}


- (void)dealloc {

    objc_removeAssociatedObjects(self);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值