在UIViewController
生命周期的哪一点,subview
self.view
属性保证会填充所有正确的视图?注意:我不关心它们是否布局,只是它们存在于子视图数组中。 WWDC视频说,loadView
,viewDidLoad
和init
都没有保证,但viewWillLayoutSubviews
也在游戏的后期。
我在这个例子中尝试执行的任务是本地化。在一个公共视图控制器类中,我想循环遍历所有子视图,看看它们是否有一个自定义属性集,用于标识附加到该视图的本地化字符串键,然后递归所有视图子视图,直到视图的底部达到层次结构。在这种情况下,布局并不重要,只是在视图控制器中填充了子视图。
答案 0 :(得分:2)
在UIViewController生命周期的什么时候,self.view的subview属性保证填充所有正确的视图
大多数应用实施的最早点是viewDidLoad
。此时,您可以保证self.view
与故事板中的所有子视图一起存在,和已经填充了从故事板连接到此视图控制器的任何出口。
我不关心它们是否布局,只是它们存在于子视图数组中
确实如此。此时self.view
及其带有nib的子视图存在,但它们的布局尚未发生,并且它们的框架不一定正确。你不在乎,所以viewDidLoad
适合你的目的。