一个界面有4个tableView,或者更多.

tableView的DataSource,Delegate,交给谁去处理?如何处理数据传输与用户交互.~~

小彩笔~~


我始终认为一个界面出现多个 table 是非常糟糕的设计。

你要看清楚到底是非要多个 table 不可,还是多个 section 配不同的 cell 就可以搞定。

真的非要多个 table 不可就按照第一个答案的方法。

在 MVC 里面,为了避免 VC 臃肿,我习惯不把 dataSource 直接挂在 VC 上。而是用一个专门的对象来代理 dataSource,他与 VC 同生命周期,如果 cell 上面的事件比较复杂,可能会引入额外的 callback,不过相比让 VC 爆炸,这很值得。

或者用 ReactiveCocoa 去做 MVVM。
Childviewcontroller

看MVVM的逻辑。

一个界面(viewController)4个tableView很大可能就是设计有问题,应该多从设计方面考虑。

分享一下Container View的好处,有时候PageViewController好多了。

storyboard特别友好的显示了VC之间的关系


一个界面多个Table其实是非常常见的设计,这个得需要自己对著设计实现的理解

简单的,直接用tableviewController分开管理table的数据,然后通过addchildviewcontoller加到主要的controller中,复杂点的界面,tableviewController无法解决的,那就直接用viewController再内嵌tableView就行了。这样做做的话,可以更好的区分每个vc的作用,以后对其做单独的修改更新的时候也会显得特别的简单明了;

还有,如果觉得数据通用可以分类统一管理的,可以把dataSource甚至delegate都用单独的类实现代理多个table,这样就可以让代码更加简洁了
ReactiveCocoa吧。

MVC massive,被吐槽的太多了。


刚好上星期的需求做过类似的东西……第一个版本是用了最土的方法,1个tableView,用1个index来控制4个介面4套数据4个缓存……每个tableViewDelegate和datasource都要switch case……后来换了个方案,用pageViewController来管理4个Controller…看起来就好很多了……楼上说的用section管理这个思路也很赞……
推荐阅读:
相关文章