OS X View Controllers Tutorial学习笔记

15th,June,2016
learn from: OS X View Controllers Tutorial

Introducing View Controllers

A view controller is responsible for managing a view and its subviews.

ViewController 负责管理view和它的subviews。NSViewController,在OS X 10.10以前是不具备响应链的,也就是说,有个按钮在ViewController的view中,ViewController是无法接受到响应事件。
ViewControolers可以将Window中的内容分割到多个逻辑单位中。
ViewController能处理窗口的一些任务,比如调整窗口大小或者关闭窗口。

Window Controller or View Controller?

可以通过view controllers处理view和subviews与用户交互的所有功能。也可以通过view Controller实现相关联的window的功能,例如对root ViewController进行设置,调整大小,修改初始位置,设置标题等。

View Controllers in Action

A container view is a placeholder for another view that is not available in Interface Builder or is provided by another View Controller.

A Tab View Controller is a view controller subclass (NSTabViewController); its view contains a tab view with two or more items and a container view.

View Controller Life Cycle

view controller的生命周期主要分为三个部分: creation(创建), lifetime(运行时),termination(终止)。

Creation
  1. viewDidLoad() 当视图完全加载完后会之行一次初始化行为,如配置numberformatter的类型,注册通知,或者调用API(但只需调用一次).
  2. viewWillAppear() 当视图将要出现时被调用,在viewDidLoad调用之后被调用。是一个更新UI或者刷新data model的一个时机。
  3. viewDidAppear() 在视图出现在屏幕上时调用。可以做一些有趣的动画处理。
Lifetime

当view controller被创建之后,将会进入接收用户行为的一个阶段。
1. updateViewConstraints() 布局变化时被调用。如调整窗口大小等。
2. viewWillLayout() 在layout()方法之前被调用。可以做一些适应约束的操作。
3. viewDidLayout(() 在layout()方法之后被调用。
ps: 调用这些方法之前,需先调用super方法。

Termination
  1. viewWillDisappear() 在视图将要消失前被调用。在这里可以停止动画。
  2. viewDidDisappear() 视图不在屏幕时被调用。在这里可以丢弃任何不在需要用到的。比如,关闭一个不再需要用到的timer。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值