解析推送通知,如何在收到通知时修改当前视图控制器中的变量?

Parse Push Notifications, how do I modify a variable in the current view controller when a notification is recieved?

当我的应用收到推送通知时,我想增加一个变量,即 totalMessages++。我知道:

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

     [PFPush handlePush:userInfo];
 }

在收到推送且应用程序当前打开时调用。然而,这是在 AppDelegate.m 中声明的。我将如何修改当前显示的视图控制器中的变量,即 FriendDisplayViewController?

您可能希望自己开始处理通知和负载(阅读:userInfo),例如:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
  [[NSNotificationCenter defaultCenter] postNotificationName:superUniqueNotificationName
                                                      object:nil
                                                    userInfo:userInfo];
}

为了让 appDelegate 和您的 viewController 使用相同的 notificationName,您需要在某个地方集中共享它(例如:AwesomeConstants.h/.m):

FOUNDATION_EXTERN NSString * const superUniqueNotificationName; // .h

NSString * const superUniqueNotificationName = @"superUniqueNotificationName"; // .m

让您的 viewController 加入类似

的内容
- (void)viewDidLoad {
  [super viewDidLoad];
  [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(receivedParseNotification:)
                                               name:superUniqueNotificationName
                                             object:nil];
}

-(void)dealloc {
  [[NSNotificationCenter defaultCenter]removeObserver:self];
}

-(void)receivedParseNotification:(NSNotification *)parseNotification {
  NSLog(@"got %@ in FriendDisplayViewController, let's rock some variables", parseNotification);
}