Ios swift子视图不完全填充父视图

Ios swift子视图不完全填充父视图,ios,objective-c,iphone,swift3,Ios,Objective C,Iphone,Swift3,当应用程序启动时,我使用此方法设置根视图控制器 func showRootViewController() { let sb = UIStoryboard.init(name: "Main", bundle: nil) let mainViewController = sb.instantiateInitialViewController()! self.window?.rootViewController = mainViewController self.wi

当应用程序启动时,我使用此方法设置根视图控制器

func showRootViewController() {
    let sb = UIStoryboard.init(name: "Main", bundle: nil)
    let mainViewController = sb.instantiateInitialViewController()!
    self.window?.rootViewController = mainViewController
    self.window?.makeKeyAndVisible()
}
在主视图控制器中,我编写了将视图设置为容器视图的代码

class MainViewController: UIViewController {

    @IBOutlet weak var headerView: UIView!
    @IBOutlet weak var containerView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

            }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        if(userManager.hasRegistered()) {
            let sb = UIStoryboard.init(name: "Login", bundle: nil)
            self.setContentViewController(sb.instantiateInitialViewController()!)
        } else {
            let sb = UIStoryboard.init(name: "Registration", bundle: nil)
            self.setContentViewController(sb.instantiateInitialViewController()!)
        }

    }

    func setContentViewController(_ contentViewController: UIViewController) {
        print(self.containerView.frame)
        let contentView = contentViewController.view!
        contentView.frame = self.containerView.bounds
        self.containerView.addSubview(contentView)
    }
}
让我们看看视图,我有容器视图,用于添加子视图。我设置背景以帮助每个人解决容器视图的框架问题

子视图的设计如下所示:

结果并不像我预期的那样。ContainerView去了一个我真的不知道的地方,子视图在顶部移动。


请帮助我。

contentView框架设置在错误的位置。 您应该移动这行代码:

contentView.frame = self.containerView.bounds


contentView框架设置在错误的位置。 您应该移动这行代码:

contentView.frame = self.containerView.bounds


不能依赖viewDidLoad中的标注。 请改用viewDidLayoutSubviews。请注意,它可以被多次调用
我已经解决了这类问题。

您不能依赖viewDidLoad中的维度。 请改用viewDidLayoutSubviews。请注意,它可以被多次调用
我已经解决了这类问题。

结果仍然相同。viewDidLayoutSubviews甚至在ViewDid出现之前就已经运行了。请阅读以下内容:非常感谢@iGeno。缺少键“添加子视图控制器”。结果仍然相同。viewDidLayoutSubviews甚至在ViewDid出现之前就已经运行了。请阅读以下内容:非常感谢@iGeno。缺少键“添加子视图控制器”。