Я делаю тест. Представление представляет вопрос в контейнере.
Теперь у контейнера может быть существующий вопрос (и его необходимо заменить) или он может быть первым экземпляром, помещающим вопрос в контейнер.
@IBOutlet weak var containerView: UIView!
func createContainerView() {
if let questionSet = quizManagerClass.getNextQFromSet() {
question = questionSet.question
answers = questionSet.answers
if containerView != nil && containerView.isDescendant(of: view) {
containerView.removeFromSuperview()
}
// add container
let localContainerView = UIView()
localContainerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(localContainerView)
NSLayoutConstraint.activate([
localContainerView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),
localContainerView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),
localContainerView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0),
localContainerView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0),
])
// add child view controller view to container
if let controller = storyboard!.instantiateViewController(withIdentifier: "question") as? QuestionViewController {
controller.question = question
childQuiz = controller
addChild(controller)
controller.view.translatesAutoresizingMaskIntoConstraints = false
localContainerView.addSubview(controller.view)
NSLayoutConstraint.activate([
controller.view.leadingAnchor.constraint(equalTo: localContainerView.leadingAnchor),
controller.view.trailingAnchor.constraint(equalTo: localContainerView.trailingAnchor),
controller.view.topAnchor.constraint(equalTo: localContainerView.topAnchor),
controller.view.bottomAnchor.constraint(equalTo: localContainerView.bottomAnchor)
])
controller.didMove(toParent: self)
}
containerView = localContainerView
loadingViewRemove()
}
}
Теперь иметь локальный контейнер и поменять его местами так, как будто это неправильно.
Как я могу заменить представление контейнера новым экземпляром вопроса о тесте, используя лучшие практики?