iOS开发随笔

一些架构小想法。
熊猫直播iPad 端有很多固定的侧边栏,比如刚进入直播间那个UISplitViewController

iPad.jpeg

分为左右两个,左边是首页、娱乐、订阅、比赛、个人中心、聊天、搜索、设置 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啦啦啦,现在可以删除掉那么多代理方法和那么多类了么?

我已经如此应用过的界面还有熊猫直播主播端的更多界面。。

如下:

WechatIMG30.png

右边一个collectionView,每个item都从配置文件读取。更第一个版本比起来,代码量少了很多。阅读代码也清晰了。

so,能用配置一定要用配置加runtime结合,对这种固定模块的功能,很有优势

你可能感兴趣的:(iOS开发随笔)