2016-11-30 72 views
-1

起初,我认为nib只生成了子视图(拥有所有者的目标对象实例,即视图控制器)。Nib文件中包含哪些对象?

从我的理解(或误解)视图控制器(所有者)

现在实际上被包含在相同的笔尖文件时使用的出口。

这是否意味着视图控制器和视图都是'由'生成或由nib文件实例化?

感谢

+0

请不要一再询问同一个问题。如果您的第一个问题不明确,请对其进行编辑。 – matt

+0

对不起,我以为我删除了另一个问题。 – user7024499

回答

1

笔尖由什么,它的组成意味着无论你那里。不过,从您的问题中可以听出,您似乎可能在问故事板是如何工作的,因为它们使用了不直接与之互动的笔尖。

在故事板中,每个场景由两个组成 nibs:一个包含视图控制器,另一个包含视图控制器的视图(及其子视图和其他所有内容)。

xib文件表示视图控制器的视图,视图控制器本身只是一个代理对象(文件的所有者);它不是从笔尖生成的,而是在笔尖加载时已经存在(这就是为什么它可以作为文件的所有者)。这实际上也是故事板场景中的第二个nib文件的工作原理。

+0

从我刚刚阅读的内容来看,我认为可能是这样的情况,如果你有一个已经存在的对象,你想成为未来的所有者对象,那么当你创建一个出口连接时,那个已经存在的对象实例现在'神奇地'变成除了nib文件之外。因此,即使所有者实例不需要存在的笔尖,它仍然会成为笔尖的一部分,并且当笔尖加载时,您现在有两个单独的实例,一个是原始所有者对象,但现在它拥有一个新的属性,指它拥有的实例。正确? – user7024499

+0

没有魔法,它不会成为nib文件的一部分。您是否阅读过我的书中关于所有者和代理的章节?我在这里用一个漂亮的图表来解释网点:http://www.apeth.com/iOSBook/ch07.html#_outlet_connections – matt

+0

感谢马特,这张图与我看过的图有点不同,我会对此进行一番审视。非常感激! – user7024499

相关问题