Настоящий viewcontroller с вкладкой - PullRequest
0 голосов
/ 02 мая 2019

Я создал UITabBarController программно в AppDelegate с 4 контроллерами представления (используя .xib).Когда пользователь нажимает какую-то кнопку на ViewController (VC-A), он представляет другой VC (VC-B) и покрытую панель вкладок.Поэтому я хочу, чтобы у VC-B была панель вкладок на кнопке.

Я пытался добавить VC-B в качестве дочернего элемента tabbarcontroller.Я попытался .present (vc) и .show (vc) на обоих: VC-A и VC-A.TabBarController

Создание контроллеров в AppDelegate:

 let controllers = [tabViewController1,tabViewController2,tabViewController3,tabViewController4]
 tabBarController.viewControllers = controllers
 window?.rootViewController = tabBarController

представление в VC-A

self.tabBarController?.present(controller, animated: false, completion: nil)

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Решение состоит в том, чтобы встроить каждый VC в navigationController, а затем добавить в TabBarController.

let vc1 = ViewController1()

let navController1 = UINavigationController(rootViewController: vc1)
navController.isNavigationBarHidden = true

let controllers = [navController1, navController2, navController3, navController4]
tabBarController.viewControllers = controllers 

window?.rootViewController = tabBarController

Тогда звоните

self.navigationController? .PushViewController (контроллер, анимированный: правда)

Для отображения VC с вкладкой

0 голосов
/ 02 мая 2019

щелкните правой кнопкой мыши и перетащите из контроллера панели вкладок в раскадровке в VC-B.это должно создать вкладку в нижней части ваших VC-A и VC-B для перехода назад и вперед без необходимости реализации какого-либо внутреннего кода, если вы не хотите анимировать

...