【问题标题】:Child ViewController's view is nil when trying to add it to a View Container尝试将子 ViewController 的视图添加到视图容器时,它的视图为零
【发布时间】:2020-04-28 23:28:13
【问题描述】:

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

父视图控制器:

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

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

谢谢!

【问题讨论】:

  • 嗯,这很尴尬。我猜我的 xcode 出了问题或其他什么,但我尝试删除容器视图并再次添加它并创建一个新的插座,它成功了!我不知道发生了什么

标签: ios swift


【解决方案1】:

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

【讨论】:

  • 我仔细检查了一下,一切都设置好了。
  • 嗯,这很尴尬。我猜我的 xcode 出了问题或其他什么,但我尝试删除容器视图并再次添加它并创建一个新的插座,它成功了!我不知道发生了什么
猜你喜欢
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 2013-06-05
  • 2012-08-08
相关资源
最近更新 更多