Когда пользователь выбирает структуру в tableView , он проверяет, есть ли еще структуры "снизу", и добавляет представление как дочернее представление в представление контейнера моего MainViewController .
// there is some more code but it is just for some styling and the search bar and setting up everything
if structured is Structure {
let structure = structured as! Structure
let storyBoard = UIStoryboard(name:"Main", bundle:nil)
let plansViewCtrl = storyBoard.instantiateViewController(withIdentifier: "PlansViewController2") as! PlansViewController2
self.treeSource?.select(structure)
plansViewCtrl.treeSource = self.treeSource
plansViewCtrl.navigationItem.title = structure.name
if let mainVC = self.parent as? ProjectOverViewTabController2 {
mainVC.addChildView(viewController: plansViewCtrl, in: mainVC.scrollView)
}
Вышеприведенная часть работает должным образом. Я также реализовал всплывающее окно, где все структуры отображаются в popupView , когда пользователь нажимает кнопку в MainViewController . Здесь - это мой popupViewController . Это немного долго, поэтому я не мог бы включить его сюда.
@IBAction func didTapCategory(_ sender: UIBarButtonItem) {
// let popupContent = StructureNavigationListViewController.create()
// let cardpopUp = SBCardPopupViewController(contentViewController: popupContent)
//
// cardpopUp.show(onViewController: self)
let sb = UIStoryboard(name: "Main", bundle: nil)
let ctrl = sb.instantiateViewController(withIdentifier: "StructureNavigationListViewController") as! StructureNavigationListViewController
let popupVc = PopupViewController(contentController: ctrl, position: .top(60), popupWidth: view.viewWidth/2, popupHeight: view.viewHeight)
present(popupVc, animated: true)
}
И код для списка структуры в * StructureNavigationListViewController *:
//Here is more code but it is not necessary in this case
tableView.rx.modelSelected(Structure.self).subscribe(onNext: { structure in
let storyBoard = UIStoryboard(name:"Main", bundle:nil)
let plansViewCtrl = storyBoard.instantiateViewController(withIdentifier: "PlansViewController2") as! PlansViewController2
self.treeSource?.select(structure)
plansViewCtrl.treeSource = self.treeSource
plansViewCtrl.navigationItem.title = structure.name
self.show(plansViewCtrl, sender: self)
if let mainVC = self.parent as? ProjectOverViewTabController2 {
mainVC.addChildView(viewController: plansViewCtrl, in: mainVC.scrollView)
}
}).disposed(by: disposeBag)
Проблема теперь состоит в том, что каждый раз, когда вы выбираете структуру во всплывающем окне, она отображает planViewController2 (показано в коде внизу) на полном экране изадний элемент исчезает. * StructureNavigationListViewController * не встроен в контроллер навигации. Есть ли способ добавить контроллер вида в контейнерное представление моего MainViewController -> "mainVC.scrollView", когда пользователь выбирает структуру в моем всплывающем представлении? Я знаю, что это много информации, но я не знаю, с чего начать. Заранее спасибо!