之前一直以为傻傻在当前的controller中写
self.tabBarItem.badgeValue = @"1";
其实是要在在tabbar的第一个controller里面写
- (void)setMsgBadgeWithNum:(int)num{
UIViewController *tController = [self.tabBarController.viewControllers objectAtIndex:2];int badgeValue = [tController.tabBarItem.badgeValue intValue];tController.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d",badgeValue+num];
}
当num=3时,有如下效果
![](https://img.haomeiwen.com/i2105557/3c224183de4022d8.png)
这样第一次加载时tabbar时,badge就有了值了。而一般点击后badge会清空,这个效果只需要在当前controller的didload中写如下代码:
self.navigationController.tabBarItem.badgeValue = nil;
网友评论