我已经阅读了 Apple 的“您的第一个 iOS 应用程序”指南,其中的所有内容对我来说似乎都一清二楚。然而,当我试图了解 XCode 中提供的基于视图的 iOS 应用程序模板如何工作时,我遇到了一些有趣的难题。
我知道应用程序从 *-Info.plist 文件中获取主 nib 文件名(通常是 MainWindow.xib)。我不明白的是,XCode 如何知道默认情况下哪个 nib 文件与使用此基于视图的应用程序模板创建的控制器相关联。在指南中,您从基于 Window 的应用程序开始,并且“必须编写”如下内容:
MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
这很有意义。然而,事实证明,在基于 View 的 iOS 应用程序模板中没有这样的东西,而且这个 nib 规范实际上并不是首先需要的,只要您创建 UIViewController 子类并使用选项“With XIB for user interface “检查。我的问题是,XCode 是如何知道哪个 nib 与该控制器相关联的,即它是将此连接存储在某些文件中,还是通过某种约定(也许控制器和 nib 文件的名称相同)?此外,“从“MyViewBasedAppController”加载的”字幕来自于 MainWindow.xib 中的 Interface builder 的控制器视图中的哪里?当我手动添加控制器时它肯定不存在,所以我很好奇 XCode 在我背后做了什么魔法,当我想我的时候