如何在iPhone中获取推送通知后立即更新值?

时间:2012-05-08 11:29:27

标签: iphone apple-push-notifications

我在我的应用程序中使用了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值显​​示金额标签中的金额。现在值已更改,当我导航到任何视图后,它将更新。但我希望在收到通知后立即在我的应用程序中更新该值。所以请帮帮我。

谢谢!

2 个答案:

答案 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}}

上设置金额的方法