Iphone 选项卡栏项目上的徽章未显示

Iphone 选项卡栏项目上的徽章未显示,iphone,ios,uitabbaritem,badge,Iphone,Ios,Uitabbaritem,Badge,在我的应用程序中,我的选项卡项的徽章值在AppDelegate.m中设置,如下所示: AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStor

在我的应用程序中,我的选项卡项的徽章值在
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”。为什么在
应用程序中设置的徽章值将进入前台:
applicationIDBECOMEACTIVE:
将永远不会出现?如果我没有在
应用程序:didFinishLaunchingWithOptions:
中设置标记值,则此处没有显示标记。

您需要了解UIApplicationLegate协议以及各种状态转换。只有当手机发生一组状态更改时,才会在启动时发生ApplicationIDBecomeActive转换。

您需要了解UIApplicationLegate协议以及各种状态转换。只有在手机发生一组状态更改时,ApplicationIDBecMeactive转换才会在启动时发生。

@Meno谢谢你。这对我有用

复制粘贴

[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"]; 

viewDidLoad

@Meno感谢好友。这对我有用

复制粘贴

[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"]; 

viewDidLoad

中,在我的情况下调用了ApplicationIDBecMeasive。问题是那里的徽章集永远不会出现在选项卡栏项目上。Thx for you answer:)徽章值已修改,因为我可以用修改后的徽章值记录它。但它不会出现在选项卡栏项目上。我不使用故事板,但当您修改徽章值时,必须将UITableBarController设置为窗口的rootViewController,并使其可见,等等。您可能正在尝试创建某些内容并设置其值,以便稍后覆盖对象。如果您可以推迟更新徽章项目,直到您确定选项卡栏显示它应该工作为止。在我的情况下,这里调用了ApplicationIDBecMeactive。问题是那里的徽章集永远不会出现在选项卡栏项目上。Thx for you answer:)徽章值已修改,因为我可以用修改后的徽章值记录它。但它不会出现在选项卡栏项目上。我不使用故事板,但当您修改徽章值时,必须将UITableBarController设置为窗口的rootViewController,并使其可见,等等。您可能正在尝试创建某些内容并设置其值,以便稍后覆盖对象。如果您可以推迟更新徽章项目,直到您确定选项卡栏显示它应该工作。我现在有同样的问题。我将徽章值设置为applicationIDBecomeActive。我可以在调试中看到正确的值,但当我的选项卡栏可视化时,我丢失了徽章值!!!!为什么?有解决办法吗?@Blasco73 Plz检查其他人的答案和回答:)我现在也有同样的问题。我将徽章值设置为applicationIDBecomeActive。我可以在调试中看到正确的值,但当我的选项卡栏可视化时,我丢失了徽章值!!!!为什么?有解决办法吗?@Blasco73 Plz检查其他人的答案和回复:)