У меня есть эта раскадровка:
и этот код:
var actualVisibleView : String? = nil
func showSubViewInContainerView(view: String){
let controller = storyboard!.instantiateViewController(withIdentifier: view)
addChildViewController(controller)
controller.view.translatesAutoresizingMaskIntoConstraints = false
systemContainerView.addSubview(controller.view)
NSLayoutConstraint.activate([
controller.view.leadingAnchor.constraint(equalTo: systemContainerView.leadingAnchor),
controller.view.trailingAnchor.constraint(equalTo: systemContainerView.trailingAnchor),
controller.view.topAnchor.constraint(equalTo: systemContainerView.topAnchor),
controller.view.bottomAnchor.constraint(equalTo: systemContainerView.bottomAnchor)
])
controller.didMove(toParentViewController: self)
if self.actualVisibleView != nil && self.actualVisibleView != view {
controller.dismiss(animated: false) {
print("UBIJAM: \(view)")
}
}
self.actualVisibleView = view
print("OTWIERAM: \(view)")
}
В левом меню я открываю различныепросмотры в этом контейнере с использованием кода:
showSubViewInContainerView(view: "view1")
showSubViewInContainerView(view: "view2")
showSubViewInContainerView(view: "view3")
showSubViewInContainerView(view: "view4")
Этот код работает легко.Единственная проблема состоит в том, что когда я открываю новое представление в представлении контейнера, я хотел бы закрыть ранее видимое представление.В контейнере будет виден только один активный вид.
В настоящий момент существуют виды, перекрывающие друг друга.
Кто-нибудь знает, как это исправить?