如何允许loadView发送到我的NSViewController?

时间:2013-08-27 14:33:54

标签: macos cocoa view nsviewcontroller

发现awakeFromNib多次被调用后,我尝试以下列方式实现loadView以防止(nib加载)初始化重复发生,并使用:

- (void)loadView {
    [self viewWillLoad];
    [super loadView];
    [self viewDidLoad];
}

看起来是允许在viewWillLoad中设置某些数组和属性的好方法,但绝对不会调用loadView

为什么?

我在这里和通过谷歌做了很多研究。

2 个答案:

答案 0 :(得分:0)

您没有收到loadView消息,因为您将此VC及其视图放在同一个笔尖中,并将VC的view插座设置为视图。由于VC已有视图,因此没有理由加载另一个视图。

答案 1 :(得分:-1)

如果您使用的是笔尖,则通常不会调用

loadView(因为view已经设置)。但真正的问题是为什么你试图以这种方式对抗视图加载过程。如果多次调用awakeFromNib,则表明您拥有此类的多个实例。每个人都会调用awakeFromNib(这是预期的行为)。如果这是令人惊讶的,你应该深入研究为什么你有多个实例。但是你不应该试图像这样破坏视图加载机制。