繁体   English   中英

标签栏项目上的徽章未显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM