2012-05-08 40 views
0

我在應用程序中使用了推送通知,當通知到達時,我將在有效負載中獲取一些值,並且需要更新應用程序中的值。我在所有視圖中都有金額標籤,所以我需要在收到通知後更新金額。但問題是,價值不立即更新,當我導航到任何視圖後,它將更新。我想立即更新價值,那我該怎麼做?如何在iPhone中獲取推送通知後立即更新值?

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ 

      NSString *getAmt =[[userInfo valueForKey:@"aps"] valueForKey:@"Amount"]; 
      float totalAmt = [getAmt floatValue] + [amt floatValue]; 
      NSString *finalAmount = [NSString stringWithFormat:@"%.02f",totalAmt]; 
      [[NSUserDefaults standardUserDefaults] setObject:finalAmount forKey:@"amount"]; 
      [self.viewController.view setNeedsDisplay]; 
} 

我使用Nsuserdefault值來顯示金額標籤中的金額。現在,值被更改,當我導航到任何視圖後,它將更新。但是我想在獲取通知後立即在我的應用程序中更新該值。所以請幫助我。

謝謝!

回答

1

使用NSNotication並添加一個通知,其中對方法的實施,當您收到推送通知,張貼通知和方法更新值

1

好了,你可以使用NSNotificationCenter用於此目的類的方法..

註冊你NSNotificationCenter所需UIViewController@"NotificaitonRecivied" 這樣的:

[[NSNotificationCenter defaultCenter] addObserver:self 
               selector: @selector(updateAmount:) 
                name: @"NotificaitonRecivied" 
                object: nil]; 

現在只要你REC eive任何更新的數額,只是播出這樣的通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"NotificaitonRecivied" object:nil]; 

updateAmount:量將是一個方法從NSUserDefaults讀你的量來設置它在任何View