选项卡栏视图控制器为黑色,按下时选项卡消失
tab bar view controller is black and tabs disappear when pressed
在我的情节提要中,我有带有三个表视图控制器的选项卡栏控制器,每个控制器都包装在一个单独的导航控制器中并连接到选项卡视图控制器。
当代码最初运行时,选项卡栏显示所有选项卡,但视图控制器显示为黑色。一旦按下一个选项卡,相应的控制器就会出现,但包括我按下的选项卡在内的所有选项卡都会消失。如果我继续按带有选项卡大致位置的选项卡栏,则会出现每个控制器。但是标签栏是空的。我尝试将 tabbar 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: [=10=])}
}
}
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)
}
试试这个可能对你有帮助。
你的故事板是这样的吗??
如果是,则可以将 tabController 作为初始 viewController。
喜欢
在我的情节提要中,我有带有三个表视图控制器的选项卡栏控制器,每个控制器都包装在一个单独的导航控制器中并连接到选项卡视图控制器。 当代码最初运行时,选项卡栏显示所有选项卡,但视图控制器显示为黑色。一旦按下一个选项卡,相应的控制器就会出现,但包括我按下的选项卡在内的所有选项卡都会消失。如果我继续按带有选项卡大致位置的选项卡栏,则会出现每个控制器。但是标签栏是空的。我尝试将 tabbar 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: [=10=])}
}
}
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)
}
试试这个可能对你有帮助。
你的故事板是这样的吗??
如果是,则可以将 tabController 作为初始 viewController。
喜欢