2011-07-06 53 views
1

我想学习的是窗口和viewcontroller之间的区别。我知道你每个应用只能有一个窗口。但是你可以有多个视图控制器。当我根据基于窗口的应用程序模板创建一个项目时,我只获得一个窗口。我可以创建自己的视图控制器,但是我也知道,我可以直接将事情放在基于窗口的应用程序的窗口中(如果我错了,我认为正确)。但是对于基于视图的应用程序,我当然会看到我可以添加内容。任何人都可以澄清任何这个对我来说,如果我有任何意义?窗口和ViewController之间的区别

回答

1

基本上,您有一个UIWindow的实例,它将托管所有UIViewControllersUIViews作为视图层次结构的一部分。这就是为什么UIApplication拨打[UIApplication sharedApplication].keyWindow来访问“root”视图。

因此,例如,你可以有以下堆栈:

[UIApplication sharedApplication].keyWindow - > MyView - > MyOtherViewController

欲了解更多信息,请阅读了开发者文档上UIWindowUIViewController它提供一个很好的解释差异。

0

他们是两个完全不同的东西。窗口是一个特殊的视图,主要是因为它没有超视图;它是容纳所有其他视图的容器。由于其在视图控制树根部的位置,窗口有助于将事件分派到适当的视图并根据需要重新绘制。除此之外,窗口并不担心它包含的视图太多。

视图控制器根本不是视图。它是一个管理视图及其所有子视图的控制器。视图控制器通常响应来自控件的用户输入,使用他们需要的数据填充视图,管理子视图的可见性等。当视图控制器处于活动状态时,视图控制器管理的视图将安装在窗口中,但视图控制器通常不直接引用窗口本身。