У меня есть TabBarViewController, который я хотел бы сделать видимыми / невидимыми некоторые из вкладок на основе некоторых условий автоматически. Я попробовал следующее, но это не сработало. self.tabBarController?.tabBar.items? вернуть ноль.

class MainPageTabBar: UITabBarController, UITabBarControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.delegate = self
        if Auth.auth().currentUser != nil {

            if let tabBarItem = self.tabBarController?.tabBar.items?[3] {
                tabBarItem.isEnabled = false
            }
        } else {
            if let tabBarItem = self.tabBarController?.tabBar.items?[4] {
                print("I have tabbb")
                tabBarItem.isEnabled = false
            }
        }

    }
}
0
Sanaz 13 Апр 2020 в 05:29

2 ответа

На вкладке VC все, что вам нужно сделать,

     override func viewDidLoad() {
     super.viewDidLoad()
      tabBarController?.delegate = self
      if userStatus == 1 {      //userStatus is sting where check the user status so if userstatus is 1 then tabbar show 4 tabs otherwise tabbar show 3 tabs

            self.viewControllers![0].title = "DASHBOARD"
            self.viewControllers![1].title = "COMMUNITIES"
            self.viewControllers![2].title = "ADMIN ACCOUNTS"
            self.viewControllers![3].title = "REPORTS"
        }else{
            var viewControllers = self.viewControllers
            viewControllers?.remove(at: 2)  // here i'm removing my no 2 tabs which is ADMIN ACCOUNTS you can see in above conditions and then i'm replacing that 2 index with third index as you see
            self.viewControllers = viewControllers
            self.viewControllers![0].title = "DASHBOARD"
            self.viewControllers![1].title = "COMMUNITIES"
            self.viewControllers![2].title = "REPORTS"
        }
}

И еще одна вещь, этот код для класса табуляции.

Я работаю над Xcode 11.1, поэтому он работает нормально для меня, надеюсь, он будет работать для вас. Спасибо

0
Vipin Pareek 13 Апр 2020 в 04:35

Установите rootViewController для окна в качестве желаемого вида viewcontroller: UIApplication.shared.keyWindow?.rootViewController = vc

0
Lynx 13 Апр 2020 в 02:47