一些架构小想法。
熊猫直播iPad 端有很多固定的侧边栏,比如刚进入直播间那个UISplitViewController
分为左右两个,左边是首页、娱乐、订阅、比赛、个人中心、聊天、搜索、设置 tab. 这几页固定写死的。
现在的做法的是这样,首先一个 UISplitViewController
的子类,然后 有个类似 leftController 和 rightController的东东。
leftController呢,有三个button ,一个TableView,如上图,那个左边那一排东东被封装起来,然后和leftViewController 使用delegate交互,然后,leftViewControler 和 UISplitViewController
的子类通过delegate交互。好了,好了。太复杂了。
分割线
改进一下,使用
一个tableView ,每个tableview的item从配置文件读取。比如:model定义
@interface PTVMasterModel : NSObject
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *imageUrl;
@property (nonatomic, copy) NSString *selectedImageUrl;
@property (nonatomic, copy) NSString *viewCotrollerName;
@property (nonotomic, copy) NSString *modal;
@end
稍微解释下。viewCotrollerName ,点击item对应要打开的viewController, modal字段表明是push还是其他。。
然后全局加一个json 文件就是这些model的信息。比如:
{
"title" : "首页",
"viewCotrollerName", "mainViewController",
}
balabala^
然后leftViewController中初始化model列表从json文件中。ok啦啦啦,现在可以删除掉那么多代理方法和那么多类了么?
我已经如此应用过的界面还有熊猫直播主播端的更多界面。。
如下:
右边一个collectionView,每个item都从配置文件读取。更第一个版本比起来,代码量少了很多。阅读代码也清晰了。
so,能用配置一定要用配置加runtime结合,对这种固定模块的功能,很有优势