/*
删掉启动main
创建根控制器为tabBar控制器
window.rootViewController = rootVC; // 显示了tabBar
main.storyBoard删掉了? 可以
创建5个子控制器
创建tabBarCt
*/
/*
如何添加5个子控制器 self.viecons = @[] self.addChildVc
目标:让tabBar图片显示图片,间断的图片
后面会用到sb,如何加载storyBoard 创建的控制器?先创建sb,然后根据sb instantiaten
给5个控制器添加图片,先添加两个控制器,然后抽取方法
封装
----------- ----------- -----------
先不管导航控制器->添加导航控制器一句话的事情:
没有导航控制器,如何设置根控制器为导航控制器 先创建一个普通控制器,然后用UINavController alloc initWitRootCont:arVC
目标:让tabBar下面的图片连起来, 自定义tabBar,继承自UIView
*/
/*
自定义tabBar添加btn的方法没写出来 有个参数:UITabBarItem
如何调用addTabBarBtn,知道在每次创建控制器的时候同时调用创建btn的方法
但是要用自定义类的对象来调用,如果一个对象方法谁都能调用那还得了
还要设置5个按钮的Frame,设置view的frame也没设置好 W/5
layoutSubViews只是有bonse没有frame?有frame啊,但不是相对屏幕的frame
自定义tabBar都是这样的套路么?addTabBar,在控制器里面调用这个方法创建按钮,另外一个方法里面设置tabBar的frame?
先创建自定义tabBarView的对象,给对象frame = self.tabView.frame;
将对象添加到[self.view addSubView] [self.table addSub]不行
给tabBarView属性赋值,删掉tabView
*/
/*
自定义navigationCon
目标:设置导航条红色,竞技场不是红色,自定义导航条按钮
在+(initialize)方法中 UINavigation appearanceWhenContainedIn:self
不要写在viewDidLoad中
*/
/*
这里没写出来,原因是想一次性把分类写出来,但是并不清楚想要的分类如何实现功能
leftBarButtonItem的图片设置方法记不清
leftBarButtonItem alloc] initWithImg 或者 leftbarItem alloc]initWithCustomView
leftBarButtonItem.image = [];显示不出来 没有frame?
如果一下子抽不出了,应该先把功能实现,然后再一步步抽方法,再抽分类
本质就是一个按钮,给按钮添加分类
分类比自定义类更好?
自定义tabBar->继承子UIView 有个代理方法,用于切换控制器.可以个性化设置tabBar的按钮图片(UIView)
UIBarButtonItem的分类可以快速创建自定义的导航栏左右按钮(带图片文字,高亮图片btn属性)
*/
Setp 下面 目标显示出下面--显示出完整的下面---点击可以切换控制器
1.自定义tabBar 类, 创建单个按钮的方法
2.设置按钮的Frame layoutSubViews
3.点击按钮切换控制器--代理
4.设置按钮点击状态 重写button setHighLight
5.主控制器中setup自定义tabBar 大view
6.主控制器中(调用5次的方法中)添加自定button (自定义tabBar类里面已经设置好了frame)
7.先addTabBar 再addChildController
--------------------------------------------------------------------------------------------------------
上面 导航条 目标:统一设置成红色 -- 竞技场白色导航条
1.创建新类设置背景颜色,在init方法里面只设置一次 方法: 类方法 apperanceWhen
2.在子控制器-方法中指定自定义的根导航控制器 initWithRootVC
3.判断 是否是竞技场,竞技场单独处理
4.设置导航条字体颜色,大小 富文本 setTitleTextA md NSFor
------------------------------------------------------------------------------------------------------------
自定义导航条按钮分类,其他不用分类?
封装按钮
----------------------------------------------------------------------------------------------------------------
竞技厂一大堆富文本细节
--------------------------------------------------------------------------------------------------
隐藏底部工具条
重写navaton push的方法 push出来的都要隐藏 count>0隐藏
修改setTabBar方法 Frame->bonse
-------------------------------------------------------------------------------------------------------
模型添加block属性,
控制器懒加载的时候给模型的block赋值
监听cell的点击事件,如果模型block属性不为空,执行block中的代码块: item.option();
自定义cell
// 自带的cell不能满足要求,要自定义
创建完UITableViewCell的类, 马上在第三个数据源方法中调用一下
自定义cell设值,要想直接点出模型,要重写模型属性的set方法
-setModel{
_model = model
Self.imageview.image = [UIImage imageNamed: model.icon]
}
这样就可以加载出来图片了,文字,即给cell赋值
子定义cell,添加右侧的箭头,开关
创建新的模型保存cell右侧的箭头,开关属性
先用自定义的cell加载左边的图片和标题,要重写cell模型属性的set方法
解析模型数据
setModel{
_model = model
Self.imageviw.image = [model.icon]
Self.textlable.text = model.title
Self setRight];
}
- (void)setRight{
If (self.item is kindofClass[])
Self.asscessview = UIImageView alloc]initWithimage:[UIImage imageNAmed:]
}