喜报基础架构

喜报基础架构

[图片上传失败...(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中信息。

你可能感兴趣的:(喜报基础架构)