您的位置:首页 > 产品设计 > UI/UE

《View Controller Programming Guide for iOS》笔记

2013-09-05 20:21 549 查看
1 ViewController分两种:Content View Controller 和 Container View Controller。

2 View Controller的职责:对内管理Views,对外跟其他ViewController通信和协调,Storyboards可以降低对外部分的复杂度。

3 ViewControllers are brains of you app, which keep most of you app logic

4 ViewControllers 总是在需要的时候才加载视图,并在不需要的时候卸载视图,所以ViewController也同时担当了管理应用资源的责任。

5 ViewController以及其关联的Views组成了应用中的一部分业务,对于应用数据,ViewController只需要知道跟这部分业务相关的部分数据。

6 UIView和UIViewController都是UIResponder的子类,即都可以接收触碰和手势的事件。

7 ViewController的outlets和actions只跟自己持有的view关联,外界不需要。所以可以建一个分类把这些方法的实现放在实现文件中。

8

ViewController的生命周期是重点

9 有关事件响应链涉及到ViewController的部分:一个View接收到事件但是没有做处理的时候,事件将会被尝试投递到与之绑定的ViewController上。

10

官方文档声明了一些系统自带的ViewController,包括联系人,短信,图片等。

11 ViewController有个setEditing接口,可以重写该接口,在内部负责将某些View换成可编辑状态(比如将tableView切换到编辑状态,将Label变成TextField等等)

12 《View Controller Catalog for iOS》介绍了几种不同类型的UIKit自带的Controller

13 ViewController之间的通信的方法:一般的app都会有几个ViewController,其中会共享数据以及相互合作,避免不了通信。
所以如何在几个Controller之间高效通信并尽量保证代码干净和可复用性是个问题。
通信的几种情况:
1 Controller初始化,Controller的创建者一般都有责任向其分配任务。
2 Controller生存周期内部,几个Controller需要同时完成某一件任务。
3 Controller销毁,有时需要向创建者发送任务处理的结果等信息。
StoryBoards忽略。
对应的实现方式:
1 使用Delegate,回调创建者的接口
2 使用Notification
3 直接调Controller的方法传输数据等。
Segue跟StoryBoard有关,忽略。

14 viewWillAppear等函数在view加入到view树以及从view树中删除时被调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: