[英]Badge on the tab bar item did not show
在我的应用程序中,我的tabBar项目的badge值在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:
设置徽章值application: didFinishLaunchingWithOptions:
那么那里没有徽章显示。
您需要阅读UIApplicationDelegate协议以及各种状态转换。 仅当电话中发生一组状态更改时,applicationDidBecomeActive过渡不会在启动时发生。
@Meno谢谢哥们。 它为我工作。
只需复制粘贴
[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"];
在viewDidLoad
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.