【发布时间】:2012-07-22 15:47:33
【问题描述】:
在我的应用程序中,我的 tabBar 项的徽章值设置在 AppDelegate.m 中,如下所示:
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"];
[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"1"];
...
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
...
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"];
[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"];
...
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
...
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"];
[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"3"];
...
}
问题是:徽章值始终为“1”。为什么applicationWillEnterForeground: 和applicationDidBecomeActive: 中设置的徽章值永远不会出现?如果我没有在application: didFinishLaunchingWithOptions: 中设置徽章值,则那里没有显示徽章。
【问题讨论】:
-
我现在也有同样的问题。我将徽章值设置为 applicationDidBecomeActive。我可以在调试中看到正确的值,但是当我的标签栏被可视化时,我失去了徽章值!!!!为什么?有解决办法吗?
-
@Blasco73 请检查其他人的答案和回复:)
标签: iphone ios uitabbaritem badge