我的情况如下:
我有不同的容器视图。如果用户触发了tap事件,我创建一个新容器并在其上调用一个方法,该方法设置子视图控制器的内容。我遇到的问题是对象(在我的情况下是UIWebView
)当时是可用的。原因是当时没有调用viewDidLoad
并且没有设置webview。现在我在构造函数中移动了webview的初始化。这导致了我的第二个问题:
在另一个容器上,我加载了相同的子视图控制器(上面有Web视图)。因为视图的边界在构造函数中不可用,所以我切换到自动布局。现在无法应用自动布局,因为没有超级视图。问题的原因是在将子视图添加到容器视图之前调用了viewDidLoad
子视图(我在其中设置了约束)。所以没有superview可用的问题,我试图添加为子视图控制器。然后我将我的自动布局设置移动到了updateViewConstraints
中。
现在我想知道何时会调用viewDidLoad
。我不能在视图控制器初始化之后立即采用,因为这不是真的。如何准备好将数据传递给我的子视图控制器?我在这里做错了吗?
何时会调用viewDidLoad
?有时它在初始化后立即调用,有时不会......
答案 0 :(得分:2)
1)视图控制器在请求loadView
属性但当前为零时调用view
方法。
2)创建视图后,视图控制器调用viewDidLoad
方法。
3)view
属性返回创建视图
总结:首次请求viewDidLoad
属性时调用的view
方法