iphone - Interface Builder 项目何时被实例化?
<p><p>假设我从 XCode4 中的模板创建了一个基于导航的应用程序,那么在 MainWindow.xib 中将有一个导航 Controller ,它有一个子 RootViewController。</p>
<p>那么具体什么时候:</p>
<ol>
<li>创建 RootViewController 的实例?</li>
<li>此实例是否作为子级与导航 Controller 相关联?</li>
</ol>
<p>特别是当涉及到 applicationDelegate “didFinishLaunchingWithOptions”方法的时间以及它发生的时间。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>在 plist 中,MainWindow 是主 nib 文件的基本名称。所以有一些隐藏代码将基于 plist 生成,以在启动时加载主窗口 nib 文件。这发生在 didFinishLaunchingWithOptions 之前。</p>
<p>一旦加载了 MainWindow nib,就会在后台执行一系列操作,请参阅 <a href="http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4-SW18" rel="noreferrer noopener nofollow">The Nib Object Life Cycle</a>在资源编程指南中。 </p>
<p>其中一个步骤是</p>
<blockquote>
<p>It unarchives the nib object graph
data and instantiates the objects.</p>
</blockquote>
<p>然后几乎终于做到了:</p>
<blockquote>
<p>It sends an awakeFromNib message to
the appropriate objects in the nib
file that define the matching
selector:
...
In iOS, this message is sent only to
the interface objects that were
instantiated by the nib-loading code.
It is not sent to File’s Owner, First
Responder, or any other proxy objects.</p>
</blockquote>
<p>您可以掌握的第一个方法是 <code>awakeFromNib</code>。</p>
<p>回答你的三个问题:</p>
<ol>
<li>在加载 MainWindo nib 文件期间</li>
<li>是的,看看界面生成器中的 nib 文件</li>
<li>这一切都发生在 didFinishLaunchingWithOptions 之前</li>
</ol></p>
<p style="font-size: 20px;">关于iphone - Interface Builder 项目何时被实例化?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/5764020/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/5764020/
</a>
</p>
页:
[1]