Interface Builder如何知道UIViewController的视图?

问题描述:

UIViewController有一个名为view的伊娃(和@property)。然而,它不是一个IBOutlet。Interface Builder如何知道UIViewController的视图?

在界面构建器中创建视图笔尖时,通常会将文件所有者设置为您的UIViewController(或其子类),并将笔尖视图连接到文件所有者的插座view

如果UIViewController视图成员不是IBOutlet,这是如何工作的?

IBOutlet关键字用于指示属性应该在Interface Builder中为您编写的类显示。 Interface Builder内部具有关于系统提供的类的其他知识。

如果您在桌面而不是iPhone上使用Interface Builder,则可以编写Interface Builder插件以将自定义类集成到Interface Builder库(Interface Builder中不支持iPhone)。在编写插件时,插件作者提供了“类描述”文件,这些文件向Interface Builder声明与IBAction/IBOutlet关键字相同的动作/插座信息。您可以在Interface Builder Plug-In Programming Guide中阅读更多关于它的信息。

它对于系统提供的类的工作方式与对插件的工作方式基本相同。

+0

该链接不再有效。 – chakrit 2012-04-26 09:52:31

简单的答案是,Apple写了Interface Builder和UIViewController

UIViewController的view属性就是这样一个属性。 UIViewController的全部目的是控制一个视图。视图属性允许您将该视图分配给UIViewController。这是观点的目的,这就是它在IB中出现的原因。这是一个财产。就像textLabel是UILabel的一个属性。

+3

blackColor是UIColor上的类方法,不是属性!这个问题不是关于视图属性的目的,而是为什么IB将它视为一个出口,尽管此属性上没有IBOutlet声明。 – 2009-08-15 01:25:41

+0

增加了另一个属性示例。 – Jordan 2009-08-15 03:31:51

+3

textLabel仍然不是UILabel的属性。这不是什么问题。我理解属性,而不是在IB中如何处理UIViewController的视图。但我想我现在已经找到了我的答案。 – jbrennan 2009-08-17 18:58:18

前段时间我读了this article,它终于把它连在了一起。也许它会帮助你?