Выполнение перехода с UINavigationController (без IBAction) - PullRequest
0 голосов
/ 04 июня 2018

Проще показать вам чертеж, а потом объяснить.

enter image description here

Раскадровка панели инструментов

У меня есть 2 отдельных UIViewControllers (я включил только один вчертеж, другой не имеет значения) встраивается в вид контейнера под названием ContainerViewController.

Post Storyboard

NewPostViewController показывает UIButton, который представляет TextPostViewController.Как видите, все они встроены в UINavigationControllers.Теперь, когда вызывается блок завершения новой записи, я должен представить ContainerViewController, и он должен обработать свою собственную логику.Проблема в том, что он встроен в UINavigationController, и когда я его представляю, UITaBbar скрыт.

Я пытался сделать это:

self.performSegue(withIdentifier: "TextPostToNavContainerVC", sender: nil)

Переход выполнен успешно, но я теряю UITabBar, хотя в DashboardViewController и ContainerViewController Я позвонил:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    tabBarController?.tabBar.isHidden = false

}

Что я делаю не так или есть лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Вы можете попытаться добавить его в качестве дочернего элемента, чтобы контролировать его кадр следующим образом

let textPost = self.storyboard?.instantiateViewController(withIdentifier: "containerID") as! TextPostToNavContainerVC
textPost.view.frame =  CGRect(x:20,y:0,width:self.view.frame.width,height:self.view.frame.height-50)
self.view.addSubview(nvc.view)
self.addChildViewController(textPost)
textPost.didMove(toParentViewController: self)
0 голосов
/ 04 июня 2018

Вы должны создать экземпляр контроллера панели вкладок.не контроллер просмотра.Представьте, что вы помещаете начальный контроллер представления перед вашим контроллером панели вкладок.Заставить вашу панель вкладок не нажиматься

Если я правильно ее понимаю.Вы делаете это Segue подключиться к контроллеру представления Но на самом деле вы должны сделать это Segue подключено к контроллеру панели вкладок

...