- 5
- 0
- 约1.93万字
- 约 74页
- 2017-11-21 发布于天津
- 举报
视图控制器ViewControllers
视图控制器(View Controllers )
范圣刚,princetoad@,
Quiz 和 QuizViewController 回顾
• 在第⼀个 session 的 Quiz 应⽤程序中,我们把所
有的代码都写在 QuizViewController 类中。这个类
的⼀个实例是 Quiz 应⽤的控制器
• 它有指向屏幕上的 labels 的指针,指向按钮的指
针,这些按钮被按下时会给它发送消息。还有指
向组成应⽤数据的模型对象的指针
• 对于界⾯只有⼀屏的 Quiz 应⽤,只有⼀个
controller 对象就⾜够了
• ⼤多数应⽤具有不⽌⼀个屏幕的界⾯,⽽且有⾮
常多的对象需要进⾏管理,设计 iOS 应⽤时最好
针对每⼀屏都有⼀个 controller
UIViewController
• ⼀个 UIViewController 实例专注在控制应⽤程序内的
⼀个单独的屏幕
• 每个 UIViewController 具有⼀个指向 UIView 或者
UIView ⼦类的实例的view 属性,这个 view 就是它
的 screen
• 通常情况下,这个 view 是⼀个全屏视图。⽽且更多
的时候,这个 view 也具有 subviews 。这样⼀个 view
controller 控制的就是⼀个view hierarchy
• 因为这个 view 属性是整个 hierarchy 的 root ,当 view
controller 的 view 被作为⼀个subview 添加到
window 时,整个 view hierarchy 就被添加了
创建 HypoTime
从 Empty Application 模版创建⼀个新
的 iOS 项⺫,命名为 HypnoTime 。
按右边的图进⾏配置:
两个 UIViewController 的⼦类
• 这个应⽤我们将创建两个 UIViewController 的⼦类
•HypnosisViewController
• TimeViewController
• 每个 view controller 将会控制⼀个 view ,⽤户将
能够在这些 views 之间切换,取决于他们是否想
被催眠或者只是想知道现在是⼏点
•view 之间的切换将会由另外⼀个类
UITabBarController 来处理
⼦类化 UIViewController
• 我们不会直接创建
UIViewController 的实
例,⽽是创建
UIViewController 的⼦
类来实例化
• ⽣成
HypnosisViewControlle
r (File - New File -
iOS - Cocoa Touch -
Objective-C class)
HypnosisViewController
•view controller 负责创建它的 view hierarchy
• HypnosisViewController 的 view hierarchy 将仅由
⼀个 view 组成。就是我们前⾯创建的 UIView 的
⼦类 HypnosisView
• 在 Finder ⾥定位到 HypnosisView.h 和
HypnosisView.m ⽂件,把他们拖到 HypnoTime 项
⺫导航器中
• 在出现的窗⼝中,勾选“Copy items into
destination group’s folder”
• 同时勾选把它们添加到 target - “HypnoTime”
添加 HypnosisView 到 HypnoTime
loadView
• UIViewController ⼦类通过重写 loadView ⽅法来创
建它的 view hierarchy
• 这个⽅法创建⼀个 view 的实例,并且把它设成
view controller 的view
• 在 HypnosisViewController.m 中重写 loadView ,确
保在⽂件顶部导⼊了 HypnosisView 的头⽂件
// 重写 loadView
- (void)loadView
{
// 创建
原创力文档

文档评论(0)