【发布时间】:2020-02-25 01:25:43
【问题描述】:
有一个 ViewController1 有一个 stackView。
我创建了一个 ViewController2 的实例并将它的视图作为子视图添加到 ViewController1 的 stackView 中,我想看看是否只有通过这样做才会调用 ViewController2 的 viewDidLoad 并且它这样做了,当我将 ViewController2 的视图添加到时调用了 ViewController2 viewDidLoad ViewController1 的 stackView。例如:在 ViewController1self.stackView.addArrangedSubView(viewControler2.view)
那为什么我们需要做 addChild(viewController2) 然后添加视图作为子视图,那些添加 childController 的典型行和它在父视图控制器层次结构中的视图
【问题讨论】:
-
你能发布一些代码吗?可能更清楚地解释了为什么你用这种方式编码? (更清晰 == 细节。)事情是这样的 - 你不需要“需要”这样做 - 这意味着有 both 视图层次结构 和 8 视图控制器之一。在某些情况下,您*应该在
UIViewController中嵌入UIView。我做。并将其变成子视图控制器。但是如果没有一些细节,就很难确切地知道你在做什么。 -
最初,我只在 VC1 stackview 中添加了 VC2 视图并且它工作了所以我想为什么我需要添加 VC2 作为 VC1 的子控制器,我正在避免添加子控制器的过程。但是 VC2 视图有一个按钮,当用户单击时,该按钮的操作没有响应。因此,通过以下方式将 VC2 作为子视图控制器添加到 VC1 完全可以。
addChildViewController(VC2) view.addSubview(VC2.view) VC2.didMove(VC1: self)
标签: ios swift childviewcontroller stackview