Вы хотите удалить значок с текущей вкладки или тот, к которому прикоснулись?
В любом случае, правильное место для этого - в вашем делегате контроллера панели вкладок:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
Обратите внимание, что эта функция вызывается всякий раз, когда пользователь нажимает на кнопку панели вкладок, независимо от того, отличается ли показанный новый контроллер представления от старого, поэтому вы захотите отследить текущий видимый контроллер представления.Здесь вы тоже это обновите:
- (void)tabBarController:(UITabBarController *)tabBarController
didSelectViewController:(UIViewController *)viewController {
if(viewController != self.currentTabVC) {
// if you want to remove the badge from the current tab
self.currentTabVC.tabBarItem.badgeValue = nil;
// or from the new tab
viewController.tabBarItem.badgeValue = nil;
// update our tab-tracking
self.currentTabVC = viewController;
}
}