ViewController基类设计图
2022-04-29 02:52:09 26 举报
登录查看完整内容
ViewController基类设计图
作者其他创作
大纲/内容
BaseCollectionViewController
- collectionView : UICollectionView- dataSource : BaseDataSource
+ reloadData;+ collectionView:cellForItemAtIndexPath:
FeedTableViewController
- dataSource : FeedDataSource
+ reloadData;+ tableView:cellForRowAtIndexPath:
OtherViewController
- other : Other
+ setIOther:(Other *)other;+ initWithOtherId: (NSString *)otherId;
依赖
backGroundColor = [UIColor themeColor]
leftItem = [NavigationItem new]
<<interface>>DataSourceDelegate
+ dataSource:loadingBeginWithType:+ dataSource:loadingSucceedWithType:+ dataSource:loadingFailWithType:errorMsg:
FeedDataSource
+ loadingDataCompletion:
组合
继承
方法说明
BaseTableViewCell
- model: Model
+ reloadWithModel:+ createSubviews+ setupSubviewLayouts+ setupStyle
BaseViewController
- leftItem : NavigationItem
- backGroundColor : UIColor
Base模块描述如下:BaseViewController是所有VC的基类,BaseTableViewController和BaseCollectionViewController都是继承自BaseViewController的,DataSourceAdapter是一个通过协议定义的适配器,统一抽象BaseTableViewController 和 BaseCollectionViewController的通用接口,并由BaseDataSource来负责实现这些接口,完成数据请求并通过DataSourceDelegate进行回调,BaseTableViewController和BaseCollectionViewController分别是现DataSourceDelegate接口。这样其他继承自BaseTableViewController 和 BaseCollectionViewController的子类就不需要重复实现相关数据加载、下拉刷新、上拉加载操作。只需要指定一个BaseDataSource的子类负责去请求数据,并专注子Cell的开发。
类 名
说 明
DataSourceAdapter协议的startRefreshData方法
请求刷新数据,由BaseDataSource及其子类实现
DataSourceAdapter协议的startLoadMoreData方法
请求加载下一页数据,由BaseDataSource及其子类实现
DataSourceAdapter协议的cancelLoadingData方法
取消请求数据,由BaseDataSource及其子类实现
DataSourceDelegate协议的dataSource:loadingBeginWithType:
开始加载数据
DataSourceDelegate协议的dataSource:loadingSucceedWithType:
加载数据成功
DataSourceDelegate协议的dataSource:loadingFailWithType:errorMsg:
加载数据失败
BaseTableViewController
- tableView : UITableView- dataSource : BaseDataSource
<<interface>>DataSourceAdapter
- dataArray : NSArray- pageSize : NSInteger- pageNum : NSInteger- isLoading : BOOL- hasNextPage : BOOL - delegate : id<DataSourceDelegate>
+ startRefreshData+ startLoadMoreData+ cancelLoadingData
实现
所有类的抽象基类
所有TableViewController的抽象基类,继承自BaseViewController
所有BaseCollectionViewController的抽象基类,继承自BaseViewController
DataSourceAdapter
请求数据的接口,由BaseDataSource及其子类实现
DataSourceDelegate
请求数据的回调,由BaseTableViewController、BaseCollectionViewController及其子类实现
BaseDataSource
类说明:
TopicTableViewCell
- topic : Topic
- setTopic:(Topic *)topic
FeedTableViewCell
- feed : Feed
- setFeed:(Feed *)feed
TopicDataSource
TopicTableViewController
- dataSource : TopicDataSource
![ViewController基类设计图](https://www.processon.com/chart_image/template/thumb/6266af1b1efad452157318d5.png?tid=6266af1b1efad452157318d3)
收藏
0 条评论
回复 删除
下一页