将导航栏的后退按钮中的文字去掉一直是老大难问题,现在可以使用运行时机制,将后退按钮文字清空

创建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

最新文章

  1. oracle ORA-01427: 单行子查询返回多个行
  2. C++中有符号/无符号数比较
  3. 【HDU 5839】Special Tetrahedron(计算几何)
  4. [Android]Volley源码分析(一)
  5. 利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)
  6. HDU 5826 physics(物理)
  7. hibernate generator class=xxx id详解
  8. nginx 负载均衡相关知识
  9. Python3批量爬取网页图片
  10. phpmailer使用gmail SMTP的方法
  11. JS修改JSON中key的方法
  12. atoi 和itoa用法
  13. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)
  14. How feedback work for your improvement
  15. 初始化css样式的原因
  16. 前端之DOM操作
  17. 前端打包成桌面应用、以及chrome扩展
  18. [转帖]Application Request Route实现IIS Server Farms集群负载详解
  19. Can&#39;t use Subversion command line client: svn. Errors found while svn working copies detection.
  20. 【mysql】查看版本的四种方法

热门文章

  1. 洛谷P2118 比例简化(暴力)
  2. tinymce原装插件源码分析(三)-code
  3. vue 连接后台
  4. 搭建rsync实时同步
  5. vsftpd服务程序的三种认证模式
  6. 【codeforces 128C】Games with Rectangle
  7. Java读书笔记一(异常处理)
  8. EJB3.0高速入门项目开发步骤
  9. oracle学习 第一章 简单的查询语句 ——03
  10. Swift学习笔记(二)——常量与变量