自用代码库
优化Coredata数据重排序的逻辑
左右滑菜单增加针对Model的预先适配Block
修复iOS,tableview左滑右滑菜单bug
UIAlertController增加UIBarItem启动方法 View增加调用Presenter传参数拿返回值的接口 增加MVPCellActionModel设计TableView的左右滑动菜单(iOS11开始支持)
MVPTableViewOutput和MVPCollectViewOutput增加TableView和CollectionView属性,MVPTableViewOutput增加tableView的Class设置,两个都增加了注册Cell用的Block,和注册Nib的简单方法。
CoredataInput增加刷新FetchController的方法 MVPOutputProtocol增加刷新方法 MVPView增加刷新方法,增加执行selector的方法
CoredataInput增加结果数量限制
修改MVPView的协议接口声明,修改TableOutput默认关闭动画,修改Presenter的BarItem绑定增加sender参数
MVPView
增加navigationItem的生成方法,并且强制设置title,用于给VoiceOver提供提示。
修复tableivew的refreshcontrol和largetitle冲突的问题。
MVPTableViewOutput
增加动画开关。
Input增加删除obj的方法。
MVPComplexInput
增加获取子Input的方法。
给MVPModel
增加简易实例化的方法。
处理Tableview闪屏、自动滚动的问题。
修改MVPContentCell
的Presenter获取途径,保证CoredataInput可以正常使用MVPContentCell
的功能。
将CoreDataInput
的fetch加载方式改为懒加载,防止init方法执行于input继承类属性赋值之前导致属性缺失。
增加MVPComplexInput
用于创建复合Input,可以组合不同的Input,每一个Input作为单独section的数据源。
MVPView
增加bindSelector
方法直接用于绑定MVPPresenter
的方法实现。
主要用于转发 MVPView的 UIViewController LifeCircle方法,例如将viewWillAppear:
转发给Presenter
[self mvp_bindSelector:@selector(viewWillAppear:)];
MVPView
增加bindGesture
方法用于绑定手势触发MVPPresenter
的- (void)mvp_gestrue:(__kindof UIGestureRecognizer *)gesture
方法。
另外为了与MVPContentCell
的方法做区分,增加- (void)mvp_gestrue:(__kindof UIGestureRecognizer*)gesture model:(id<MVPModelProtocol>)model;
用与专门响应ContentCell的手势,这个方法会同时将生成ContentCell的model传过来。
MVPRouter
增加通过URL获取参数的方法。
注册方法名与URL对应
[self.router regiestTarget:self selector:@selector(testString) asRouter:@"demo://getTestString"];
注册全局静态参数
[self.router regiestTarget:self selector:@selector(testString) asStaticRouter:@"demo://getTestString2"];
二者区别是,第一种注册,只会在Router的valueForRouterURL
方法调用的时候请求,结果是动态的。
[self.router valueForRouterURL:@"demo://getTestString"];
第二种是在注册时就会请求一次数据并全局缓存,此后不再调用数据生成方法,除非重新注册。