我的应用获得推送通知后,徽章将在应用图标上正确显示。如果有多个推送通知,则该数字也将根据服务器端的设置正确显示。现在,在应用程序中,有一个通知视图(tableview)显示所有未完成的通知(存储在服务器端并被下拉)。用户可以选择任何单元格来查看详细信息。此时,我会执行以下操作以减少应用程序图标上显示的徽章编号。但它似乎没有生效。有什么遗漏?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
...
// reduce badge number
NSInteger badgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber];
if (badgeNumber > 0) {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:(badgeNumber - 1)];
}
// bring up another view controller to show the notification detail
...
}