我在我的应用程序中使用了Push通知,当通知到达时,我将在有效负载中获得一些值,我需要更新应用程序中的值。我在所有视图中都有金额标签,因此我需要在收到通知后更新金额。但问题是,当我导航到任何视图后它会更新时,值不会立即更新。我想立即更新价值,那我该怎么做呢?
-(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值显示金额标签中的金额。现在值已更改,当我导航到任何视图后,它将更新。但我希望在收到通知后立即在我的应用程序中更新该值。所以请帮帮我。
谢谢!
答案 0 :(得分:1)
使用NSNotication并在实现方法的类方法中添加通知,当您收到推送通知,发布该通知和方法更新值时
答案 1 :(得分:1)
嗯,您可以将NSNotificationCenter
用于此目的..
UIViewController
NSNotificationCenter
在@"NotificaitonRecivied"
注册您想要的[[NSNotificationCenter defaultCenter] addObserver:self
selector: @selector(updateAmount:)
name: @"NotificaitonRecivied"
object: nil];
像这样:
[[NSNotificationCenter defaultCenter] postNotificationName:@"NotificaitonRecivied" object:nil];
现在,只要您收到任何更新的金额,只需播放如下通知:
updateAmount:
NSUserDefaults
金额将是一种从View
读取您的金额以在任何{{1}}