可以多次调用 viewDidLoad 吗?

Posted

技术标签:

【中文标题】可以多次调用 viewDidLoad 吗?【英文标题】:Can viewDidLoad be called mutiple times? 【发布时间】:2011-10-14 22:12:44 【问题描述】:

文档说“在视图控制器将其关联视图加载到内存后调用此方法。”我的问题是:

1) 如果我初始化一个视图控制器,则调用 viewDidLoad,或者视图实际上是否必须添加为当前视图的超级视图才能被调用

2)如果我添加了视图控制器视图,并且调用了viewDidLoad,然后我删除了视图控制器视图,然后再重新添加它,是否会再次调用viewDidLoad?

【问题讨论】:

【参考方案1】:

viewDidLoad 在视图加载时被调用。访问 vc.view 属性时会发生这种情况。它通常发生在将视图添加到视图层次结构之前,但如果更早访问属性,它可能会更早发生。

如果您从视图层次结构中删除视图,然后发生内存警告并调用 viewDidUnload,则如果再次访问 view 属性,则将再次调用 viewDidLoad。但这是第二次调用它的唯一方法;如果您的视图永远不会卸载,那么viewDidLoad 将永远不会重复。

【讨论】:

以上是关于可以多次调用 viewDidLoad 吗?的主要内容,如果未能解决你的问题,请参考以下文章

理论知识整合笔记

viewDidLoad 被调用两次

是否在 UITabBarController 中多次调用 viewDidLoad?

在 Xcode 4.3 中设置属性值不固定/viewDidLoad 被多次调用

UIViewController 的子类在调用 super 之前可以在 viewDidLoad 中进行一些初始化吗?

loadView与viewDidLoad