BadgeValue не обновляется на UITabBarItem

Я использую UITabBar а также UITabBarItems с этим. Я могу установить значение значка для UITabBarItem перед назначением tabBarItem в tabBar, Но моя проблема в том, что я не могу обновить значение значка tabBarItem,

Вот код, в котором я могу изначально установить значение значка:

// array of tabBarItems
NSMutableArray * tabs = [[NSMutableArray  alloc] init];

for(iterates few times)
{
    [tabs addObject:[[UITabBarItem alloc] initWithTitle:firstName image:nil tag:i]];
    // set tabItem's property
    [(UITabBarItem *)[tabs objectAtIndex:i] setFinishedSelectedImage:[self convertImage:iconImage toSize:CGSizeMake(iconWidth, TAB_ICON_HEIGHT)] withFinishedUnselectedImage:[self convertImage:iconImage toSize:CGSizeMake(iconWidth, TAB_ICON_HEIGHT)]];
    [[tabs objectAtIndex:0] setBadgeValue:[NSString stringWithFormat:@"%d", 2]];
}
// setting items of UITabBar
[self.chatTabBar setItems:tabs];

Здесь я пытаюсь обновить значение значка. Так что же происходит, если я NSLog новое значение значка показывает обновленное значение, но я не вижу изменений в пользовательском интерфейсе.

[[self.chatTabBar.items objectAtIndex:0] setBadgeValue:[NSString stringWithFormat:@"%d", 1]];

2 ответа

Решение

Попытайся:

UIViewController *carrinhoVC = [self.tabBarController.viewControllers objectAtIndex:0];

            carrinhoVC.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d", 1];

carrinhoVC - это UIViewController, который вы хотите обновить значение значка внутри TabBar.

Этот код работал для меня:

if let tabBar = UIApplication.shared.keyWindow?.rootViewController as? UITabBarController,
    let tabBarItem = tabBar.tabBar.items?[1] {
    tabBarItem.badgeValue = nil
}
Другие вопросы по тегам