我的应用程序委托中有一个方法可以更新应用程序图标的徽章计数。 我希望这个方法也能更新另一个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;
}
你提到了一个通知中心。 您是否考虑过通过NSNotificationCenter使用NSNotifications? 它是中央实体在不知道谁听的情况下广播信息的理想选择。 您可以使用将同步调用的回调为这些通知注册视图控制器。
如果需要在整个应用程序中显示某些信息,请创建一个负责存储信息的管理器类。 创建一个方便的方法来访问此类的共享实例。 当发生事件意味着您必须更新信息时,请告知共享实例有关该事件的信息。 对于需要显示此信息的用户界面的所有部分,请对共享实例使用键值观察(KVO),以便在其任何属性发生更改时得到通知。