В Моей раскадровке у меня есть контроллер панели вкладок с тремя контроллерами представления таблиц, каждый из которых обернут в отдельный контроллер навигации и подключен к контроллеру представления вкладок.
Когда код запускается изначально, панель вкладок отображается со всеми вкладками, но дисплей контроллера отображения черный. После нажатия вкладки появляется соответствующий контроллер, но все вкладки, включая ту, которую я нажал, исчезают. Если я продолжу нажимать на панель вкладок с приблизительным расположением вкладок, то появится каждый контроллер. Но панель вкладок пуста. Я попытался установить вкладку isHidden на false, но не повезло.
Также почему первый раз дисплей контроллера черный. Как я могу это исправить?
Код:
extension ViewTabBarController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let myVC1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EVC") as! TableViewController1
myVC.selectedTab = self.selectedTab
let myVC2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PVC") as! TableViewController2
let myVC3= UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "TVC") as! TableViewController3
let controllers = [myVC1, myVC2, myVC3,]
self.viewControllers = controllers.map { UINavigationController(rootViewController: $0)}
}
}
class ViewTabBarController: UITabBarController {
var selectedTab:Int = 0
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = sell
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.tabBar.isHidden = false
}
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
self.selectedTab = (tabBar.items?.index(of: item))!
print (self.selectedTab)
}