0

アプリケーションでプッシュ通知を使用しました。通知が到着すると、ペイロードにいくつかの値が含まれ、アプリケーションで値を更新する必要があります。すべてのビューに金額ラベルがあるため、通知を受け取った後に金額を更新する必要があります。しかし、問題は、値がすぐに更新されないことです。その後、任意のビューに移動すると、値が更新されます。値を即座に更新したいのですが、どうすればそれを行うことができますか?

-(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 値を使用しています。これで値が変更され、その後任意のビューに移動すると更新されます。しかし、通知を受け取った後、アプリケーションで値を即座に更新したいと考えています。だから私を助けてください。

ありがとう!

4

2 に答える 2

1

まあ、あなたはNSNotificationCenterこの目的のために使用することができます..

このようにあなたが望むようUIViewControllerに登録してください :NSNotificationCenter@"NotificaitonRecivied"

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

更新された金額を受け取るたびに、次のような通知をブロードキャストするだけです。

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

updateAmount:amount は、金額を読み取り、NSUserDefaults任意の値に設定するメソッドです。View

于 2012-05-08T11:37:36.367 に答える
1

NSNotication を使用して、メソッドが実装されているクラスのメソッドに対して通知を追加し、プッシュ通知を受信したら、その通知を投稿し、メソッドで値を更新します

于 2012-05-08T11:34:29.367 に答える