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 设计阶段
- 帮助你在 MVC 中设计视图
- layout 用户 界面元素
- 添加控制器对象
- 链接控制器和 UI
Nib 加载
[NSBundle loadNibNamed:owner:options:]
自动创建对象需要自定义状态
-(void)awakeFromNib
加载 nib 后,可以实现自定义逻辑,缺省为空,常用来恢复数据和状态
-(void)prepareForInterfaceBuilder
Storyboard
- 控制 view controller 之间关系和条状
- 是多个 nib 的集合,nib 对应 scene
- scene 之间通过 segue 跳转
- 通过实现- prepareForSugue 进行页面跳转和数据传递
Storyboard缺点
- 同时编辑容易产生冲突,可以通过拆分多个 storyboard 文件来避免
- scene 较多时,Xcode 加载和编辑比较慢