美文网首页
iOS 初试MVVM & 无限下拉

iOS 初试MVVM & 无限下拉

作者: Cralyon | 来源:发表于2018-03-23 11:35 被阅读0次

            作为菜鸟,维护着古老的MVC项目,之前一直知道MVVM框架,但都是简单的浏览对于它的各种定义、与MVC的各种区别、它的优势,简单的说,它就是为了将Controller解放出来。想想以前的代码,真•惨不忍睹,然后再看看ReactiveCocoa框架。。。。。

            这一篇文章会简单的对我对于MVVM实现的方法以及思想进行阐述

    项目目录

    这里以通讯录的列表为例(需求:实现树形分组的无限下拉,效果与上图一致 )

    先梳理一下思路吧,用tableView 去实现,数据模型:增加节点字段:子节点,父节点,增加BOOL类型字段:记录它的展开状态,根据tableView的方法deleteRowsAtIndexPaths、insertRowsAtIndexPaths增加或者删除需要展示的子数组

    这里进行了MVVM模式的初次试探

    按照我对MVVM的理解,它是将View 与 Model 分开,在ViewModel中对这两个元素进行关联,因此有了Controller、Model、ViewModel、View文件夹。

    我创建了MainTableViewModel.m文件来对首页的数据以及页面进行绑定

    MainTableViewModel.h

    而在首页Controller中,我对tableView进行了初始化,似乎不在首页进行初始化,在handleWithTable: 方法中初始化是不能够成功设置tableView的

    MainVC.m文件中的方法

    MainVC.m

    这里代码量很少,主要操作都集中在MainTableViewModel中,其中getData方法就是在配置TableView的数据源,并且绑定在MainTableViewModel中,做完这些,就可以把操作都抛到MainTableViewModel.m中了,下面是造数据

    其中的tableModel是MainTableViewModel,viewModel是封装的一个网络请求数据处理的入口(MainViewModel.h),不要问我为什么不把它并入mainTableViewModel中。其他的在Demo中看吧。

    最后留个demo的地址吧

    这里使用了Masnory、MJExtension、AFNetworking(这里我对它进行了简单的封装)、SDWebImage(这个似乎没有用到)第三方的框架,感谢。

    相关文章

      网友评论

          本文标题:iOS 初试MVVM & 无限下拉

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