Скрытие вкладок в TabBarViewController программно в Swift - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть 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
            }
        }

    }
}

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

на вашей вкладке v c все, что вам нужно для этого

     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 голосов
/ 13 апреля 2020

установить rootViewController для окна как желаемый вид контроллера: UIApplication.shared.keyWindow?.rootViewController = vc

...