У меня есть общая функция в расширении UIViewController
.Я вызываю эту функцию из контроллера панели вкладок и просмотра контроллера.Это работает при вызове из контроллера представления, но не работает при вызове из контроллера панели вкладок.Управление переходит на иначе Ошибка: tabItems .Я не могу понять, что не так, любой другой способ сделать это так, чтобы он работал при вызове из контроллера вкладок?
class MainTabBarController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.updateBadges()
}
extension UIViewController {
func updateBadges() {
DispatchQueue.main.async {
self.setBadge(tab: 1, count: 3)
}
}
func setBadge(tab: Int, count: Int) {
if let tabItems = self.tabBarController?.tabBar.items {
print("Inside tabItems")
let tabItem = tabItems[tab]
if count != 0 {
tabItem.badgeValue = String(count)
} else {
tabItem.badgeValue = nil
}
} else {
print("Error: tabItems")
}
}
}