为什么要自定义UITabBarController

一  为什么要自定义UITabBarController
  1. 想把UITabBarController内部的自控制器细节屏蔽起来, 不让外界了解
  2. 另外一个目的: 每一段代码都应该放在合适的地方
二  重复代码的抽取
  1.  相同的代码放到一个方法中
  2. 不同的东西变成参数
  3. 在需要用到这段代码的地方传递参数/调用方法


三 统一所有控制器导航栏左上角和右上角的内容都一样
  1. 让所有push进来的控制器,它导航栏左上角和右上角的内容都一样
  2.  拦截所有push进来的控制器
  3. method : 自定义导航栏  重写push方法, 就可以得到传进来的控制器参数
//      90%的”拦截"都是通过自定义类, 重写自带的方法实现的
四 90%的报错 —>duplicate symbol _OBJC_METACLASS_$_类名 in: “错误
  1. 90%都是因为包换了#import.m文件"
  2. 其他出错的话可能是 因为项目中存在了两个一样的.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;
}

  1. 项目中有多处地方会用到这段代码
  2. 每一段代码都应该放在最合适的地反: 这段代码明显是在创建一个UIBarButtonItem,所以跟UIBarButtonItem相关
  3. 从命名习惯和规范的角度看:[UIBarButtonItem ItemWith…] 这种形式创建item是比较规范的


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值