为什么要自定义UITabBarController
来源:互联网 发布:linux pyqt4 eric6 编辑:程序博客网 时间:2024/06/08 11:31
一 为什么要自定义UITabBarController
- 想把UITabBarController内部的自控制器细节屏蔽起来, 不让外界了解
- 另外一个目的: 每一段代码都应该放在合适的地方
二 重复代码的抽取
- 相同的代码放到一个方法中
- 不同的东西变成参数
- 在需要用到这段代码的地方传递参数/调用方法
三 统一所有控制器导航栏左上角和右上角的内容都一样
- 让所有push进来的控制器,它导航栏左上角和右上角的内容都一样
- 拦截所有push进来的控制器
- method : 自定义导航栏 重写push方法, 就可以得到传进来的控制器参数
// 90%的”拦截"都是通过自定义类, 重写自带的方法实现的
四 90%的报错 —>duplicate symbol _OBJC_METACLASS_$_类名 in: “错误
- 90%都是因为包换了#import.m文件"
- 其他出错的话可能是 因为项目中存在了两个一样的.m文件
五 创建UIBarButtonItem的代码为什么放在UIBarButtonItem分类中最合适?
+ (UIBarButtonItem *)itemWithTarget:(id)target Action:(SEL)action WithImage:(NSString *)image WithLightImage:(NSString *)lightImage{ UIButton *Btn = [UIButton buttonWithType:UIButtonTypeCustom]; [Btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; [Btn setBackgroundImage:[UIImage imageNamed:lightImage] forState:UIControlStateHighlighted]; Btn.size = Btn.currentBackgroundImage.size; [Btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *item =[[UIBarButtonItem alloc] initWithCustomView:Btn]; return item;}
- 项目中有多处地方会用到这段代码
- 每一段代码都应该放在最合适的地反: 这段代码明显是在创建一个UIBarButtonItem,所以跟UIBarButtonItem相关
- 从命名习惯和规范的角度看:[UIBarButtonItem ItemWith…] 这种形式创建item是比较规范的
1 0
- 为什么要自定义UITabBarController
- 自定义UITabBarController
- 自定义UITabBarController
- 自定义UITabBarController
- 自定义UITabBarController
- 自定义UITabBarController
- 自定义UITabBarController
- 自定义 UITabbarController
- 自定义UITabBarController
- UITabBarController详解(三)自定义UITabBarController
- 自定义UITabBarController简单方法
- UITabBarController自定义标签栏
- UITabBarController自定义(一)
- UITabBarController中自定义UITabBar
- IOS自定义UITabBarController
- UITabBarController自定义以及隐藏
- iOS--自定义UITabBarController
- 使用UIViewController自定义UITabBarController
- 学习笔记之JavaSE(35)--JavaAPI详解10
- Android系统手机端抓包方法
- 设计模式学习笔记--过滤器模式
- C++读写表格csv——文本与表格完美桥接者
- char*,const char*和string的相互转换(转)
- 为什么要自定义UITabBarController
- 苹果ANCS协议学习
- 发送邮件+接收未读邮件
- dockerinstallbashshell
- [RK3399] SDIO 接口 Wifi 驱动流程分析 (AP6354)
- 如何选择RabbitMQ的消息保存方式?
- setTimeout 和 setInteval 的区别。
- Java——计算矩形是否相交、交集面积
- Tips: SSH 无密码登录配置