解析推送通知,如何在收到通知时修改当前视图控制器中的变量?
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);
}
当我的应用收到推送通知时,我想增加一个变量,即 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);
}