删除didSelect函数中的UITabBar项

时间:2018-02-15 23:51:13

标签: ios swift uitabbar

为什么我选择它时无法删除索引为0的标签栏项目。如果我选择标签。条目项1它将删除项目0没有任何问题

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem){
   super.viewDidLoad()

    ContainerVC.tabBarViewController?.viewControllers?.remove(at: 0)
}

2 个答案:

答案 0 :(得分:0)

你可以尝试

 let arr =  ContainerVC.tabBarViewController?.viewControllers

 let v1:UIViewController  = arr [1]

 let homePage = self.storyboard?.instantiateViewController(withIdentifier: "homePage") 

 ContainerVC.tabBarViewController?.viewControllers = [homePage,v1]

更新:删除

  super.viewDidLoad()

调用函数,因为它可能会导致奇怪的结果,即使它不是声明的地方

答案 1 :(得分:0)

我相信这实际上会解决你的问题。当我决定以编程方式而不是故事板执行segue时,我一直在使用我的自定义控制器设置标签栏项目,我实际上已经有了实现这一目标的粗略经验。你需要做的是:    而不是

ContainerVC.tabBarViewController?.viewControllers?.remove(at: 0)

使用

self.viewControllers?.remove(at: 0)

我相信这会解决你的问题。