美文网首页
关于controller的瘦身计划

关于controller的瘦身计划

作者: 乡村武装青年 | 来源:发表于2015-11-28 00:27 被阅读121次

偶然在objc.io中看过一篇关于controller瘦身的文章.之后又从唐大神的公众号那了解到了一些给VC减肥的方法,以下是习笔记:

controller由于其独特性,在很多情况下是不能复用的,当然造成controller不能复用的原因之一就是:其VC种处理view赋值懂的逻辑代码太多,这部分代码由于其特殊性,在每个VC中又不是一样的,所以给VC减肥,首先需要我们把VC中处理view的逻辑抽离出来.举个例子:

我们用的UITableview,这个ui控件在我们项目种所使用的频率是极其高的,通常我们一个VC里面可能就只会有一个tableview作为唯一的元素.然后VC中大部分代码都是关于负责显示这个tableview的,思考一下,我们是不是可以把负责显示这个tableview的代码抽离出去.


首先,继承nsobject

在.h文件中声明

#import

typedefvoid(^retuneCell)(idcell,idindexPath);

@interfaceMVVM :NSObject

- (instancetype)initStr:(NSString*)str arr:(NSArray*)arr bolck:(retuneCell)block;

- (id)cellAtIndexPath:(NSIndexPath*)indexPath;

@end


在.m文件中

#import"MVVM.h"

@interfaceMVVM()

@property(nonatomic,strong)NSString*str;

@property(nonatomic,strong)NSArray*arr;

@property(nonatomic,copy)retuneCellblock;

@end

@implementationMVVM

- (instancetype)initStr:(NSString*)str arr:(NSArray*)arr bolck:(retuneCell)block

{

if(self= [superinit]) {

self.str= str;

self.arr= arr;

self.block= block;

}

returnself;

}

- (id)cellAtIndexPath:(NSIndexPath*)indexPath

{

returnself.arr[indexPath.row];

}

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

{

returnself.arr.count;

}

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath

{

UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:self.strforIndexPath:indexPath];

cell.tag= indexPath.row;

self.block(cell, indexPath);

returncell;

}

@end


这样,我们就完全把VC负责页面显示的代码剥离出来了,然后我还可以给这个类绑定到一些ui控件上,当我们完成某一个特定操作的时候,动态的改变这个类.

相关文章

  • 关于controller的瘦身计划

    偶然在objc.io中看过一篇关于controller瘦身的文章.之后又从唐大神的公众号那了解到了一些给VC减肥的...

  • Controller瘦身

    在我们使用传统的MVC设计模式的时候,通常写着写着C中的代码就会变得又多又乱,今天通过一个简单的实例来了解MVP设...

  • Controller 的瘦身

    讨论下Controller 瘦身.在此之前一直想把tableview的代理在controller中干掉 ,可是一直...

  • 如何将controller瘦身?

    前阵子,看到了一篇关于将controller瘦身的文章,很多同学则是一直都是将数据请求放在controlle...

  • 21天健康瘦身计划 | 第1天,打开唤醒我们的身体

    21天 健康瘦身计划 欢迎大家加入Wake21天健康瘦身计划,今天是本次瘦身计划的第1天,训练难度会小很多,主要是...

  • MVVM与Controller瘦身实践

    前言 MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就...

  • iOS - Controller 瘦身简析

    在《iOS 常见架构一览》中提到, 由于iOS 开发模式中没有在设计上规范的子组件所在位置,若使用不当,会导致UI...

  • 如何给View Controller"瘦身"

    objc.io 是一个非常有名的 iOS 开发博客,它上面的第一课 《Lighter View Controlle...

  • Swift3.0 Controller瘦身

    缘由 iOS开发,我们常用的组件UITableView,UICollectionView,通过代理的方式实现数据的...

  • 做好这些,再去瘦身吧

    开始瘦身之前,有一些应该先期确认和认知的事项必须提醒瘦身者。 1.决定好瘦身进度计划。 凡是计划的进行,都要先有目...

网友评论

      本文标题:关于controller的瘦身计划

      本文链接:https://www.haomeiwen.com/subject/unidhttx.html