关闭

《View Controller Programming Guide for iOS》笔记

标签: iosuiview任务文档
3819人阅读 评论(0) 收藏 举报
分类:
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关联,外界不需要。所以可以建一个分类把这些方法的实现放在实现文件中。

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树中删除时被调用。


0
0

猜你在找
【直播】机器学习&深度学习系统实战(唐宇迪)
【直播】Kaggle 神器:XGBoost 从基础到实战(冒教授)
【直播回放】深度学习基础与TensorFlow实践(王琛)
【直播】计算机视觉原理及实战(屈教授)
【直播】机器学习之凸优化(马博士)
【直播】机器学习之矩阵(黄博士)
【直播】机器学习之概率与统计推断(冒教授)
【直播】机器学习之数学基础
【直播】TensorFlow实战进阶(智亮)
【直播】深度学习30天系统实训(唐宇迪)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场