- 在控制器和view中我们一定要去做一些事情,然后慢慢的写代码过程中发现其实方法名称不一致,而且后期维护代码乱乱的,最后我们维护起来很麻烦。所以决定统一控制器和view的必做的事情,方便管理
一.控制器中可能要做的事
- 1.懒加载数据(现在不建议使用懒加载,存在风险)
- 2.初始化控制器
- 3.控制器的声明周期
- 4.生成子控件
- 4.5 设置tableview
- 5.设置navItem和title以及其他基本属性
- 6.私有方法
- 7.对外的方法
- 8.加载网络数据
- 9.通过数据更新UI
- 10.设置数据源方法
- 11.设置代理方法
# pragma mark - 1.懒加载数据 (现在不建议使用懒加载,存在风险)
# pragma mark - 2.初始化控制器
# pragma mark - 3.控制器的声明周期
- (void)viewDidLoad
{
[super viewDidLoad];
//生成子控件
[self setupSubViews];
//设置基本属性
[self setupBasic];
//获取网络数据
[self loadNewData];
//设置tableview
[self setupTableView];
[self setupNotification];
}
# pragma mark - 4.生成子控件
- (void)setupSubViews
{
}
# pragma mark - 4.5 设置tableview
- (void)setupTableView
{
}
# pragma mark - 5.设置通知,观察者,navigation,items,tableview等基本属性
- (void)setupBasic
{
}
# pragma mark - 6.私有方法
# pragma mark - 7.对外的方法
# pragma mark - 8.加载网络数据
- (void)loadNewData
{
}
# pragma mark - 9.通过数据更新UI
- (void)updateSubViews
{
}
# pragma mark - 10.设置数据源方法
# pragma mark - 11.设置代理方法
二.view中一定要做的事
- 1.懒加载(现在不建议使用懒加载,存在风险)
- 2.初始化方法
- 3.创建子控件
- 4.更新UI
- 5.外部方法
- 6.内部方法
# pragma mark - 1.懒加载
# pragma mark - 2.初始化方法
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
//创建子控件
[self setupSubViews];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
//创建子控件
[self setupSubViews];
}
return self;
}
# pragma mark - 3.创建子控件
- (void)setupSubViews
{
// 更新ui
[self setNeedsUpdateConstraints];
}
# pragma mark - 4.更新UI
- (void)layoutSubviews
{
[super layoutSubviews];
}
- (void)updateConstraints
{
[super updateConstraints];
}
#pragma mark - 5.外部方法
#pragma mark - 6.内部方法
- 将这些代码设置成快捷键,每次创建完代码,我们先去创建这些基本函数,就可以了,不同的程序员写代码逃不出这基本的方法,有问题快速去找到。