加载相关视图后,系统会调用[UIViewController viewDidLoad]
方法(显然?)。一个共同的信念 - 我分享 - 是viewDidLoad
不应该直接调用†。但是,我无法在documentation中找到此指南,也无法在Apple中找到其他任何内容。它存在吗?
为了进行比较,loadView
documentation表示
你永远不应该直接调用这个方法。
†在重写方法中取消[super viewDidLoad]
。
答案 0 :(得分:2)
我认为没有任何禁止它的规则。我并不是说“我们都知道有一条规则,它只是没有写下来。”我的意思是“我认为没有任何禁止它的规则。”我们知道,您可以随时致电viewDidLoad
(包括其super
)。
这并不意味着应该调用它。但是,你几乎肯定不应该打电话给OSCompareAndSwap
。在这两种情况下,如果你有充分的理由知道自己在做什么,那么打电话可能是合适的。但它不太可能出现。
虽然我想不出我必须直接拨打viewDidLoad
的时间,但我必须手动调用viewWillAppear
和viewDidDisappear
来管理自定义容器中的视图生命周期查看控制器。如果这就是你的意思,没有什么禁止调用视图生命周期方法。
也就是说,如果没有意味着“视图已转换为此状态”,则调用视图生命周期方法将是不好的做法。而且由于很难进入加载视图的情况,但是viewDidLoad
将不会被调用,因此很难想象很多情况下它会有用。你不应该无用地调用方法。所以,据我所知,这是唯一的规则。
答案 1 :(得分:1)
没有明确提及,但如果你打电话给它,你会以某种方式违反合同"文档中指定的方法:
在控制器的视图加载到内存后调用。