设计模式 - MVC

MVC关系

Model->Controller:
View->Controller:
Controller-->Model:
Controller-->View:

模型(Model)

  • 数据是变化的

创建/修改/删除/查询

  • 和UI 无关
  • 经常需要持久化保存
  • 同一模型可以重用,甚至不需要修改

视图(View)

  • 使用==恰当的方法==,将模型展示给用户
  • 允许用户操作数据
  • 不存储数据(除保存临时数据 cache)
  • 简单可以重复使用,可配置显示不同类型数据

控制器(Controller)

  • 模型和视图的桥梁
  • 模型改变后更新视图
  • 用户操作视图后更新模型
  • 一般维护app 核心逻辑(比如创建/下载数据等)

Target-Action 链接逻辑和控件

View(controls)-->Controller:actions
Controller->Model:outlets
Controller->View(controls):outlets

selector

the name used to select a method

Interface Builder ,Xibs(Nibs),Storyboard

UI Files 设计阶段

  1. 帮助你在 MVC 中设计视图
  2. layout 用户 界面元素
  3. 添加控制器对象
  4. 链接控制器和 UI

Nib 加载

[NSBundle loadNibNamed:owner:options:]

自动创建对象需要自定义状态

-(void)awakeFromNib
加载 nib 后,可以实现自定义逻辑,缺省为空,常用来恢复数据和状态

-(void)prepareForInterfaceBuilder

Storyboard

  • 控制 view controller 之间关系和条状
  • 是多个 nib 的集合,nib 对应 scene
  • scene 之间通过 segue 跳转
  • 通过实现- prepareForSugue 进行页面跳转和数据传递

Storyboard缺点

  • 同时编辑容易产生冲突,可以通过拆分多个 storyboard 文件来避免
  • scene 较多时,Xcode 加载和编辑比较慢
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容