UIViewController子视图存在不变量

时间:2016-11-23 17:14:32

标签: ios uiview uiviewcontroller

UIViewController生命周期的哪一点,subview self.view属性保证会填充所有正确的视图?注意:我不关心它们是否布局,只是它们存在于子视图数组中。 WWDC视频说,loadViewviewDidLoadinit都没有保证,但viewWillLayoutSubviews也在游戏的后期。

我在这个例子中尝试执行的任务是本地化。在一个公共视图控制器类中,我想循环遍历所有子视图,看看它们是否有一个自定义属性集,用于标识附加到该视图的本地化字符串键,然后递归所有视图子视图,直到视图的底部达到层次结构。在这种情况下,布局并不重要,只是在视图控制器中填充了子视图。

1 个答案:

答案 0 :(得分:2)

  

在UIViewController生命周期的什么时候,self.view的subview属性保证填充所有正确的视图

大多数应用实施的最早点是viewDidLoad。此时,您可以保证self.view与故事板中的所有子视图一起存在,已经填充了从故事板连接到此视图控制器的任何出口。

  

我不关心它们是否布局,只是它们存在于子视图数组中

确实如此。此时self.view及其带有nib的子视图存在,但它们的布局尚未发生,并且它们的框架不一定正确。你不在乎,所以viewDidLoad适合你的目的。