iOS 全局修改UINavigation 后退按钮
2024-08-31 14:48:25
将导航栏的后退按钮中的文字去掉一直是老大难问题,现在可以使用运行时机制,将后退按钮文字清空
创建UINavigationItem的category,直接上代码
.h文件
#import <UIKit/UIKit.h> @interface UINavigationItem (CustomBackButton)
@end
.m文件
#import "UINavigationItem+CustomBackButton.h"
#import <objc/runtime.h> @implementation UINavigationItem (CustomBackButton) +(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);
});
} -(UIBarButtonItem *)backBarButtonItem{
return [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:NULL];
} 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);
} @end
注意
#import <objc/runtime.h>
然后在Appdelegate中导入即可
#import "UINavigationItem+CustomBackButton.h"
原文链接:http://blog.csdn.net/zhangao0086/article/details/22432387
最新文章
- oracle ORA-01427: 单行子查询返回多个行
- C++中有符号/无符号数比较
- 【HDU 5839】Special Tetrahedron(计算几何)
- [Android]Volley源码分析(一)
- 利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)
- HDU 5826 physics(物理)
- hibernate generator class=xxx id详解
- nginx 负载均衡相关知识
- Python3批量爬取网页图片
- phpmailer使用gmail SMTP的方法
- JS修改JSON中key的方法
- atoi 和itoa用法
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)
- How feedback work for your improvement
- 初始化css样式的原因
- 前端之DOM操作
- 前端打包成桌面应用、以及chrome扩展
- [转帖]Application Request Route实现IIS Server Farms集群负载详解
- Can&#39;t use Subversion command line client: svn. Errors found while svn working copies detection.
- 【mysql】查看版本的四种方法