关于[UIViewController alloc]的问题

时间:2011-01-28 01:39:16

标签: objective-c cocoa-touch interface-builder

我正在浏览Apple的一些示例代码。以下5个语句来自属于“MoveMe”示例项目的MoveMeAppDelegate.m:

UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"MoveMeView" bundle:[NSBundle mainBundle]];

self.viewController = aViewController;
[aViewController release];

UIView *controllersView = [viewController view];
[window addSubview:controllersView];

从文档中,@“MoveMeView”定义了xib文件的名称。但似乎xib文件可以有多个视图对象。在上面的最后一个语句中,controllersView被添加到一个窗口对象中。我的问题是,如果窗口有多个视图,那么编译器如何知道上述代码指的是哪个视图?

1 个答案:

答案 0 :(得分:2)

如果您询问应用程序如何知道哪个视图是控制器的视图:在.xib文件中,您将其中一个视图“附加”到控制器。此关系称为插座,代码由实例变量或属性上的IBOutlet标记表示。

有关更多信息,请查看Apple的资源编程指南 - 特别是the section,标题为“Nib文件”。

如果您正在询问窗口如何知道哪些视图属于它:iOS上的窗口也是一个视图,并且可以具有(几乎)无限数量的子视图。

如果你问别的什么......我不知道你在问什么,所以请澄清。