我的app appate中有一个方法可以更新应用程序图标的徽章数。我希望这个方法也可以更新另一个VC中的内容,这个VC在整个应用程序中都是可见的(比如通知中心)。
我该怎么做?
该方法如下:
- (void) remedyERxInterface:(RSeRxInterface *)eRxInterface
didSynchronize:(BOOL)success pendingMessageCounts:(NSDictionary *)pendingMessageCounts {
NSInteger messageTotal = 0;
NSInteger refillRequests = [[pendingMessageCounts objectForKey:kRSQueuesRefillCount] intValue];
NSInteger problems = [[pendingMessageCounts objectForKey:kRSQueuesProblemCount] intValue];
NSInteger messages = [[pendingMessageCounts objectForKey:kRSQueuesMessageCount] intValue];
if (0) {
if (self.eRxModuleInboxMessageCount) {
messageTotal = refillRequests + problems + messages;
} else {
messageTotal = refillRequests + problems + messages + 12;
}
} else {
//Production
messageTotal = refillRequests + problems + messages;
}
[UIApplication sharedApplication].applicationIconBadgeNumber = messageTotal;
self.eRxModuleInboxMessageCount = messageTotal;
}
答案 0 :(得分:2)
您提到了一个通知中心。您是否考虑过通过NSNotificationCenter使用NSNotifications?它是中央实体在不知道谁听的情况下广播信息的理想选择。您可以使用将同步调用的回调为这些通知注册视图控制器。
答案 1 :(得分:0)
如果需要在整个应用程序中显示某些信息,请创建一个负责存储信息的管理器类。创建一个方便的方法来访问此类的共享实例。当发生事件意味着您必须更新信息时,请告知共享实例有关该事件的信息。对于需要显示此信息的用户界面的所有部分,请对共享实例使用键值观察(KVO),以便在其任何属性发生更改时得到通知。