我的情况如下:
我有不同的容器 View 。如果用户触发点击事件,我会创建一个新容器并在其上调用一个方法,该方法设置 subview Controller 的内容。我遇到的问题是该对象(在我的例子中是 UIWebView )当时是 nat 可用的。原因是当时没有调用viewDidLoad ,也没有设置webview。现在我在构造函数中移动了 webview 的初始化。这就引出了我的第二个问题:
在另一个容器上,我加载了相同的 subview Controller (上面有 Web View )。因为 View 的边界在构造函数中不可用,所以我切换到自动布局。现在无法应用自动布局,因为没有 super View 。问题的原因是 subview 的 viewDidLoad 在添加到容器 View 之前被调用(我在其中设置了约束)。因此,无论我尝试将其添加为 subview Controller 的位置,都没有可用的 super View 。然后我将我的自动布局设置移动到 updateViewConstraints 中。
现在我想知道何时会调用 viewDidLoad 。我不能在 View Controller 初始化后立即假设,因为那不是真的。准备好后如何可靠地将数据传递给我的 subview Controller ?我在这里做错了吗?
什么时候调用viewDidLoad ?有时它会在初始化后立即调用,有时则不会...
Best Answer-推荐答案 strong>
1) View Controller 在其 view 属性被请求但当前为 nil 时调用 loadView 方法。
2)创建 View 后, View Controller 调用 viewDidLoad 方法。
3)view 属性返回创建的 View
总结:在您第一次请求 view 属性时调用了 viewDidLoad 方法
关于ios - 容器环境中何时调用 viewDidLoad?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26652457/
|