发现它awakeFromNib
被多次调用后,我尝试以loadView
以下方式实现以防止(笔尖加载)初始化重复发生,其中:
- (void)loadView {
[self viewWillLoad];
[super loadView];
[self viewDidLoad];
}
看起来允许在 中设置某些数组和属性的好技巧viewWillLoad
,但loadView
绝对不会被调用。
为什么?
我在这里和通过谷歌对此做了很多研究。
发现它awakeFromNib
被多次调用后,我尝试以loadView
以下方式实现以防止(笔尖加载)初始化重复发生,其中:
- (void)loadView {
[self viewWillLoad];
[super loadView];
[self viewDidLoad];
}
看起来允许在 中设置某些数组和属性的好技巧viewWillLoad
,但loadView
绝对不会被调用。
为什么?
我在这里和通过谷歌对此做了很多研究。
你没有收到loadView
消息,因为你有这个 VC 和它的视图在同一个 nib 中,VC 的view
出口设置为视图。由于 VC 已经有了视图,它没有理由去加载另一个视图。
loadView
如果您使用的是 nib,通常不会调用它(因为view
已经设置)。但真正的问题是为什么您要尝试以这种方式对抗视图加载过程。如果awakeFromNib
被多次调用,则表明您有该类的多个实例。每个人都会接到一个电话awakeFromNib
(这是预期的行为)。如果这令人惊讶,您应该深入研究为什么有多个实例。但是你不应该尝试像这样颠覆视图加载机制。