我有一个TableViewController作为容器视图的子视图控制器。由于某些原因,表视图控制器不显示其任何行。它显示了背景色,但是没有信息。 这是自然的吗? 这是代码:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(topBar)
topBar.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
topBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
topBar.heightAnchor.constraint(equalToConstant: 80).isActive = true
topBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
view.addSubview(containerView)
containerView.topAnchor.constraint(equalTo: topBar.bottomAnchor).isActive = true
containerView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
containerView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
topBar.addSubview(subjects)
subjects.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
subjects.topAnchor.constraint(equalTo: view.topAnchor, constant: 30).isActive = true
topBar.addSubview(backButton)
backButton.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 20).isActive = true
backButton.topAnchor.constraint(equalTo: view.topAnchor, constant: 30).isActive = true
let subjectsView = SubjectsTableViewController().view!
subjectsView.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(subjectsView)
subjectsView.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true
subjectsView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor).isActive = true
subjectsView.leftAnchor.constraint(equalTo: containerView.leftAnchor).isActive = true
subjectsView.rightAnchor.constraint(equalTo: containerView.rightAnchor).isActive = true
}
答案 0 :(得分:0)
您添加了SubjectsTableViewController.view
作为子视图。这还不够。您还应该将SubjectsTableViewController
添加为视图控制器的子级。否则,没有指向SubjectsTableViewController
的指针指向deinit
。
let child = SubjectsTableViewController()
addChildViewController(child)
stackView.addArrangedSubview(child.view)
child.didMove(toParentViewController: self)
答案 1 :(得分:0)
您不能简单地将视图控制器的视图从该视图控制器中剥离出来并将其推到另一个视图中。您必须执行精心规定的舞蹈,以使一个视图控制器成为另一个视图的孩子,而您没有在做该舞蹈。因此,您的SubjectsTableViewController在一行中存在,而在下一行中又不存在,因此没有视图控制器可供可怜的旧表视图使用。它不再具有任何功能。正如您所说的,它是空的。