喜报基础架构
2018-03-27 本文已影响0人
小豆子__
喜报基础架构
[图片上传失败...(image-849d87-1522134151970)]
基础控制器
RootViewController
在喜报2.0版本的时候,开始新的架构设计,首先确定就是RootViewController,在RootViewController中,里面包含了以下几种方法。
- 用户模型单例,每一个视图都能够获取到用户信息,这样子页面不需要在单独获取用户信息。
- 设置页面基础属性,背景颜色,统一所有页面样式
- 设置NavBar,设置Title,按钮信息
- 基础方法,包含延时执行,获取当前页面信息等
LoginViewController
整个登录功能在设计的时候,将其单独划分出来,当登录结束后,直接替换window的RootViewController。将所有登录相关的内容从内存中清除。
在3.0版本中增加了启动显示公司信息功能,这个功能在AppDelegate的时候,已经开始获取存在NSUserDefaults里面的用户信息,创建ViewController将公司信息展示,同时异步去进行组件的注册,当所有的组件注册完成的时候,在进入到LoginViewController,这个时候在将创建的公司信息视图再次创建一次放在LoginViewController的View上,异步进行获取版本信息和自动登录,这样创造启动页面一直显示公司信息的假象。
[图片上传失败...(image-9b723c-1522134151970)]
RootTableViewController
所有包含下拉刷新的页面均继承此View。子视图负责实现业务逻辑即可。
- 根据第三方框架MJRefresh创建TableView
- 子视图必须实现刷新方法
- 子视图自行实现TableView的Delegate和DataSource
VoiceViewController
大部分表单视图均包含有语言输入模块,继承此视图可以直接创建带有语言输入的页面。使用该视图作为父视图的大部分为表单,此视图中还有创建线,黑块等自定义方法。
- 封装表单需要使用的模块
- 封装部分点击事件简化表单视图
- 封装部分请求数据处理
UserData
项目中登录后UserData中存储了诸多数据,包括
- 用户登录账户密码
- 用户账户权限
- 用户可以看到的模块信息
- 用户缓存数据信息
由于数据基本不会变动,在登录获取到信息后直接保存到NSUserDefaults中,其中可能涉及变更的提供修改方法,再次启动APP的时候直接取出信息进行登录在覆盖NSUserDefailts中信息。