我使用
设置了应用图标徽章[UIApplication sharedApplication].applicationIconBadgeNumber = ...;
我在倍数类上更改其值。在其中一个类中我有问题
NSLog(@"App icon badge : %d", [UIApplication sharedApplication].applicationIconBadgeNumber);
打印一些值。 4
。但是,如果我将应用程序放在后台,那么图标上没有徽章。它应显示徽章4
。
我还在另一个班级更改徽章价值。因为它设置了正确的值,并将app放在背景中显示正确的值。
当我在控制器中,徽章值的设置工作,并记录当前徽章值,然后它给出正确的值,并将应用程序放在后台也显示正确的值。但是如果转到另一个控制器,徽章的设置不起作用,并且记录徽章值,那么它总是打印0。
答案 0 :(得分:1)
在此方法中设置徽章值: -
- (void)applicationDidBecomeActive:(UIApplication *)application
**OR**
- (void)applicationWillEnterForeground:(UIApplication *)application
答案 1 :(得分:1)
您必须在appdelegate的不同方法中设置徽章值,如下所示:
- (void)applicationWillResignActive:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
答案 2 :(得分:0)
我解决了。这是由于下面的解析代码。
PFInstallation * currentInstallation = [PFInstallation currentInstallation];
currentInstallation.badge = 0;
[currentInstallation saveEventually:^(BOOL succeeded, NSError *error) {
if (error)
{
ALog(@"Parse error in setting badge on installation object. Error : %@", error);
}
}];
在下面一行之后,它将应用程序图标徽章设置为0。
currentInstallation.badge = 0;