0

我有两个视图控制器。父视图控制器有一个视图容器,我试图在其中显示子视图控制器。这是我的代码:

父视图控制器:

class ParentViewController: UIViewController {
    @IBOutlet weak var viewContainer: UIView! //View Container inside Parent View Controller


    override func viewDidLoad() {
        super.viewDidLoad()

        let sb = UIStoryboard(name: "Main", bundle: nil)
        let childVc = sb.instantiateViewController(withIdentifier: "ChildViewControllerStoryId") as! ChildViewController

        addChild(childVc)
        childVc.view.translatesAutoresizingMaskIntoConstraints = false
        viewContainer.addSubview(childVc.view)
        childVc.didMove(toParent: self)

    }
}

子视图控制器:

class ChildViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
    override func viewDidLoad(){
        super.viewDidLoad()
        textLabel.text = "random text"
    }
}

我在“viewContainer.addSubview(childVc.view)”处收到此错误:

致命错误:在隐式展开可选值时意外发现 nil:文件 /../../.swift

我认为它告诉我子视图控制器的视图为零。这里似乎有什么问题?

谢谢!

4

1 回答 1

1

如果您的 ChildViewController 没有在 Interface Builder 中正确设置其类,则可能会发生这种情况。确保它是,如果不能解决它,请回复评论。

于 2020-04-28T23:46:14.250 回答