Ios UIStoryboardSegue嵌入

Ios UIStoryboardSegue嵌入,ios,swift,uiscrollview,uicontainerview,Ios,Swift,Uiscrollview,Uicontainerview,interface builder中UIView(作为容器视图添加)中的嵌入序列具体做什么?我试图以编程方式嵌入ViewController,因为我想在两个不同的视图控制器之间进行选择。我想我设置了容器视图的限制条件是正确的,因为当我在故事板中添加带有嵌入序列的子视图控制器时,一切正常,但一旦我用以下代码嵌入它,视图控制器就会与容器视图的底部约束重叠,这会弄乱我的布局 let viewController = UIStoryboard(name: "Main", bundle: Bundle.m

interface builder中UIView(作为容器视图添加)中的嵌入序列具体做什么?我试图以编程方式嵌入ViewController,因为我想在两个不同的视图控制器之间进行选择。我想我设置了容器视图的限制条件是正确的,因为当我在故事板中添加带有嵌入序列的子视图控制器时,一切正常,但一旦我用以下代码嵌入它,视图控制器就会与容器视图的底部约束重叠,这会弄乱我的布局

let viewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "MyViewController")
self.containerView.addSubview(viewController.view)
self.addChildViewController(viewController)
NSLayoutConstraint.activate([
    viewController.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
    viewController.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
    viewController.view.topAnchor.constraint(equalTo: containerView.topAnchor),
    viewController.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
])

viewController.didMove(toParentViewController: self)

多亏了@Dinesh Balasubramanian,我现在得到了以下代码:

let viewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "MyViewController")
self.containerView.addSubview(viewController.view)
self.addChildViewController(viewController)
viewController.view.frame = containerView.bounds
viewController.didMove(toParentViewController: self)

请参阅“不清楚为什么这比最初提供的代码更好”。与设置子视图的
框架相比,自动布局是一种更好的定位子视图的方法,因此原始问题中的代码更好。这取决于“有效”的概念。如果
containerView
的框架更改,您的
viewController.view
将被保留。最好更具体地说明原始代码的错误。顺便说一句,它的一个错误是您调用
addChildViewController
addSubview
的顺序错误(尽管我怀疑这是问题的原因)。