Iphone Interface Builder项具体何时实例化?

Iphone Interface Builder项具体何时实例化?,iphone,ios,uinavigationcontroller,xcode4,rootview,Iphone,Ios,Uinavigationcontroller,Xcode4,Rootview,假设我从XCode4中的模板创建一个基于导航的应用程序,那么MainWindow.xib中将有一个导航控制器,它的子级是RootViewController 那么具体什么时候会: 是否要创建RootViewController的实例 是否将此实例作为子实例与导航控制器关联 特别是当与ApplicationLegate“didFinishLaunchingWithOptions”方法的计时有关时以及它发生的时间 在代码到达应用程序:didFinishLaunchingWithOptions:之前将

假设我从XCode4中的模板创建一个基于导航的应用程序,那么MainWindow.xib中将有一个导航控制器,它的子级是RootViewController

那么具体什么时候会:

  • 是否要创建RootViewController的实例
  • 是否将此实例作为子实例与导航控制器关联

  • 特别是当与ApplicationLegate“didFinishLaunchingWithOptions”方法的计时有关时以及它发生的时间

    在代码到达
    应用程序:didFinishLaunchingWithOptions:
    之前将完成的所有操作。
    UIApplicationMain()
    函数(从应用程序的
    main()
    函数调用)加载MainWindow.nib。加载nib文件时,nib文件中的所有对象都会实例化,并建立对象之间的连接


    请注意,这意味着视图控制器本身已经存在于
    应用程序:didFinishLaunchingWithOptions:
    中。视图控制器的视图并非如此。视图控制器在第一次访问视图时会延迟加载其视图。

    如plist中所示,主窗口是主nib文件的基本名称。因此me隐藏代码,该代码将基于plist生成,以在启动时加载主窗口nib文件。这发生在didFinishLaunchingWithOptions之前

    一旦加载MainWindow nib,就会有一系列在后台完成的操作,请参阅《资源编程指南》中的

    其中一个步骤是

    它将取消nib对象图的归档 数据并实例化对象

    然后,它几乎最终做到了:

    它将awakeFromNib消息发送到 nib中的适当对象 定义匹配项的文件 选择器: ... 在iOS中,此消息仅发送给 创建的接口对象 由nib加载代码实例化。 首先,它不会发送给文件的所有者 响应程序或任何其他代理对象

    您可以掌握的第一种方法是
    awakeFromNib

    要回答您的三个问题:

  • 在加载MainWindo nib文件期间
  • 是的,请查看interface builder中的nib文件
  • 这一切都发生在使用选项完成启动之前