Я получил контроллер панели вкладок с настройкой трех контроллеров представления. Один из этих контроллеров представления изменяет свой элемент панели вкладок badgeValue, когда я его открываю. Я хотел бы изменить это значение badgeValue, когда попаду на первую вкладку.
Я создал класс Tabbarcontoller: UITabBarController, но не знаю, как легко получить доступ к элементам вложенных представлений. Вот код из моего класса Tabbarcontoller:
class TabBarController: UITabBarController, MainMethodsDelegate {
var myFriendsRequests: [UserInfo] = []
var friendRequestsCount: Int = 0
func getFriendsRequests_Methods_Destination(myFriendsRequest: UserInfo) {
myFriendsRequests.append(myFriendsRequest)
self.friendRequestsCount = myFriendsRequests.count
DispatchQueue.main.async {
//friendsBarItem.badgeValue = String(self.friendRequestsCount)
}
}
let mainMethods = MainMethods()
override func viewDidLoad() {
super.viewDidLoad()
mainMethods.delegate = self
mainMethods.getFriendsRequests()
}
}
А вот рабочий код из контроллера sub view:
class FriendsViewController: UIViewController, MainMethodsDelegate {
var myFriendsRequests: [UserInfo] = []
var friendRequestsCount: Int = 0
func getFriendsRequests_Methods_Destination(myFriendsRequest: UserInfo) {
myFriendsRequests.append(myFriendsRequest)
self.friendRequestsCount = myFriendsRequests.count
DispatchQueue.main.async {
self.friendsBarItem.badgeValue = String(self.friendRequestsCount)
}
}
let mainMethods = MainMethods()
override func viewDidLoad() {
super.viewDidLoad()
mainMethods.delegate = self
mainMethods.getFriendsRequests()
}
@IBOutlet weak var friendsBarItem: UITabBarItem!
}
Я ищу простой способ доступа к подпрограмме просматривать контроллеры или, по крайней мере, элементы панели, где написано:
//friendsBarItem.badgeValue = String(self.friendRequestsCount)
Я не уверен, что делегаты - правильный путь к go?