困惑的nib文件

时间:2010-06-10 10:14:00

标签: iphone cocoa-touch uikit interface-builder nib

我知道nib文件是序列化对象,它们拥有所有者,连接点以进行连接。 使用XCode Navigation窗口模板我创建了应用程序,它按顺序创建了2个nib文件 - MainWindow和SecondView。我无法理解MainWindow是如何引用SecondView的,据我所知,这两者之间没有任何联系。 SecondView的所有者是UIViewController,而在MainWindow中有一个导航选项卡,它也是UIViewController。但他们如何在IB中联系我无法理解......

  

我也不明白是谁   实现MainWindow的所有者   对象以及该对象的位置   保持,变量在哪里   UIApplication myApp = [[UIApplication alloc] init]

这个是自我解答的:UIApplicationMain并且我需要在某处创建插座的实例变量。

如果我使用UIViewController所有者创建10个nib文件,谁将触发反序列化?

如果某个类是nib文件的所有者,那么该类的基本职责是什么?是否将nib文件反序列化为内存?

对于无组织的问题,我一直在阅读有关nib文件的大量文章和文档,但它仍然令人困惑。

2 个答案:

答案 0 :(得分:1)

应用程序启动时会加载MainWindow.xib。

打开MainWindow.xib。确保您在列表视图中。您应该看到 UINavigationController 的实例。在里面你应该看到 UIViewController 的一个实例。选择View Controller实例,然后查看Inspector Panel。你应该看到它有一个属性“Nib Name”,它被设置为“RootViewController”。因此,viewController将在运行时查找并加载“RootViewController”nib。

因此,如果您创建了10个nib,则负责反序列化,但Interface Builder可以通过在单个nib文件中打包视图来帮助您保持nib的小巧和易管理性。

答案 1 :(得分:0)

我不确定我是否理解你的所有问题。但是加载应用程序时会加载MainWindown(主窗口)nib。您可以从项目的info.plist验证这一点。你会在那里找到主nib文件的名称。在加载应用程序时加载主nib时,对象的所有者是您的应用程序的实例。