什么时候在容器环境中调用viewDidLoad?

时间:2014-10-30 12:01:06

标签: ios uiviewcontroller autolayout uicontainerview

我的情况如下:

我有不同的容器视图。如果用户触发了tap事件,我创建一个新容器并在其上调用一个方法,该方法设置子视图控制器的内容。我遇到的问题是对象(在我的情况下是UIWebView)当时是可用的。原因是当时没有调用viewDidLoad并且没有设置webview。现在我在构造函数中移动了webview的初始化。这导致了我的第二个问题:

在另一个容器上,我加载了相同的子视图控制器(上面有Web视图)。因为视图的边界在构造函数中不可用,所以我切换到自动布局。现在无法应用自动布局,因为没有超级视图。问题的原因是在将子视图添加到容器视图之前调用了viewDidLoad子视图(我在其中设置了约束)。所以没有superview可用的问题,我试图添加为子视图控制器。然后我将我的自动布局设置移动到了updateViewConstraints中。

现在我想知道何时会调用viewDidLoad。我不能在视图控制器初始化之后立即采用,因为这不是真的。如何准备好将数据传递给我的子视图控制器?我在这里做错了吗?

何时会调用viewDidLoad?有时它在初始化后立即调用,有时不会......

1 个答案:

答案 0 :(得分:2)

1)视图控制器在请求loadView属性但当前为零时调用view方法。 2)创建视图后,视图控制器调用viewDidLoad方法。 3)view属性返回创建视图

总结:首次请求viewDidLoad属性时调用的view方法