2013-05-06 3 views
1

나는 UITabBarUITabBarItems을 사용합니다. tabBarItemtabBar에 할당하기 전에 UITabBarItem의 배지 값을 설정할 수 있습니다. 하지만 내 문제는 내가 tabBarItem의 배지 값을 업데이트 할 수 없다는 것입니다. 여기UITabBarItem에서 BadgeValue가 업데이트되지 않음

// 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이 업데이트 된 값을 표시하지만 UI에 아무런 변화가 없다는 것입니다.

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

답변

4

을보십시오 :

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

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

carrinhoVC는 TabBar의 내부에 배지 값을 업데이트 할 UIViewController에 있습니다.

여전히
if let tabBar = UIApplication.shared.keyWindow?.rootViewController as? UITabBarController, 
    let tabBarItem = tabBar.tabBar.items?[1] { 
    tabBarItem.badgeValue = nil 
} 
+0

값이 업데이트 될 때,하지만 UI의 변화 : – Geek

+0

5 분 전에 당신은 그것이 효과가 있다고 다시 말했고, 당신은 정말로 잘못된 것을하고 있습니다.이 코드는 잘 작동합니다. – Marckaraujo

+0

내 코드 오류가 발생하면 답변을 수락합니다. 그러나 인내하십시오. – Geek

0

이 코드

은 나를 위해 일하지 않는다.