Ios ContainerView导致中断UIViewController的约束

Ios ContainerView导致中断UIViewController的约束,ios,swift,uiviewcontroller,uicontainerview,Ios,Swift,Uiviewcontroller,Uicontainerview,我的应用程序有三个UIViewController()。第一个是EmptyVC,第二个是在UITableView中显示数据的我的视图。第三个是容器视图,用于将这些UIViewController()彼此分离。当没有可用数据时,所有这些都是使用脚本创建的,容器显示EmptyVC,当数据出现时,它显示myUITableView()。以下是我的ContainerVC class FidelityContainerVC: UIViewController { private var presen

我的应用程序有三个
UIViewController()
。第一个是
EmptyVC
,第二个是在
UITableView
中显示数据的我的视图。第三个是容器视图,用于将这些
UIViewController()彼此分离。当没有可用数据时,所有这些都是使用脚本创建的,容器显示
EmptyVC
,当数据出现时,它显示my
UITableView()
。以下是我的
ContainerVC

class FidelityContainerVC: UIViewController {
    private var presentingVC: UIViewController?
    private var state: State?
    private let fidelityVC = FidelityVC()

    override func viewDidLoad() {
        super.viewDidLoad()
        transition(to: .render(fidelityVC))
        transition(to: .loading)
    }

    func transition(to newState: State) {
        presentingVC?.remove()
        let vc = viewController(for: newState)
        add(vc)
        presentingVC = vc
        state = newState
    }
}

extension FidelityContainerVC {
    enum State {
        case loading
        case render(UIViewController)
    }
}

private extension FidelityContainerVC {
    func viewController(for state: State) -> UIViewController {
        switch state {
        case .loading:
            return EmptyVC()
        case .render(let viewController):
            return viewController
        }
    }
}
Add
remove
UIViewController
的扩展方法

extension UIViewController {
    func add(_ child: UIViewController) {
        addChild(child)
        view.addSubview(child.view)
        child.didMove(toParent: self)
    }

    func remove() {
        guard parent != nil else {
            return
        }
        willMove(toParent: nil)
        view.removeFromSuperview()
        removeFromParent()
    }
}

我的问题是,当我将我的
EmptyVC
添加到
ContainerVC
时,约束被破坏,视图不相关。我不明白是什么原因造成的。原因可能是什么?我如何解决这个问题?

如果以编程方式将视图添加到superview,则必须在之后立即以编程方式为其添加约束。没有约束就没有实现的方法吗@阿斯佩里诺。在自动布局前的时代,我们总是做同样的事情——设置帧+自动调整大小的遮罩。布局系统如何知道在何处放置新添加的视图。