2011-10-25 3 views
0

앱의 아이콘에 대한 배지 개수를 업데이트하는 앱 위임에 메소드가 있습니다. 나는이 메소드가 앱 전체에서 볼 수있는 다른 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

배지 업데이트 방법을 호출하는 곳에서 알림 센터 통화를 사용하지 않는 이유는 무엇입니까? – hotpaw2

+0

그게 좋겠다. 좀 더 자세하게 설명해 줄 수 있겠 니? – Jon

답변

2

알림 센터가 있습니다. NSNotificationCenter를 통해 NSNotifications를 사용하고 있습니까? 중앙 엔터티가 청취자를 모른 채 정보를 브로드 캐스트하는 것이 이상적입니다. 이러한 알림에 대한보기 컨트롤러를 동기식으로 호출되는 콜백으로 등록 할 수 있습니다.

+0

이 메소드가 호출 될 때 알림을 설정하고 interger'messageTotal'을 다른 VC에 전달할 수 있습니다. 코드에서 정확히 어떻게 할 수 있습니까? 감사합니다. – Jon

+1

NSNotification 프로그래밍 가이드를 살펴보면 상당히 철저하고 간단합니다. 전달하려는 정수가 포함 된 NSNumber가 포함 된 알림이 포함 된 userInfo 사전을 전달할 수 있습니다. – jbat100

0

:

방법은 같습니다. 이 클래스의 공유 인스턴스에 액세스하기위한 편리한 메소드를 작성합니다. 정보가 업데이트되어야 함을 의미하는 이벤트가 발생하면 공유 인스턴스에 이벤트를 알립니다. 이 정보를 표시해야하는 사용자 인터페이스의 모든 부분에 대해 공유 인스턴스에 대해 KVO (Key-Value Observing)를 사용하여 속성이 변경 될 때 알림을받습니다.

+0

이미 모든 코드를 알아 냈습니다. 이 메소드가 앱 델리게이트에서 실행될 때 다른 VC의 UIButton에서 배지를 업데이트하면됩니다. – Jon