首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSNotificationCenter和didReceiveRemoteNotification

NSNotificationCenter和didReceiveRemoteNotification
EN

Stack Overflow用户
提问于 2015-08-27 22:11:49
回答 1查看 1.4K关注 0票数 2

我对NSNotificationCenter和didReceiveRemoteNotification有一些问题。当我收到来自APNS的新通知时,我想打开我的ViewController。在体内通知我有objectId -这是关键。我试着将我的ViewController打开到didReceiveRemoteNotification中,但它不起作用(

AppDelegate.m

代码语言:javascript
复制
 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{   
    [[NSNotificationCenter defaultCenter]
 postNotificationName:kDidReceiveRemoteNotification
 object:userInfo];
}

NewsDetailViewController.m

代码语言:javascript
复制
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(didReceiveRemoteNotification:)
 name:kDidReceiveRemoteNotification
 object:nil];
}

- (void)didReceiveRemoteNotification:(NSNotification *)notification
{
NSLog(@"%s %@",__func__,[notification.userInfo description]);
 }

Const.h

代码语言:javascript
复制
#define kDidReceiveRemoteNotification @"UIApplicationDidReceiveRemoteNotification"

ViewController未加载。我不知道该怎么办。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-28 07:05:43

您所附加的示例代码的当前流程是:

  1. 当收到推送通知时,将通知发送到NSNotificationCenter (与push通知完全不同和无关的内容)。
  2. 当加载另一个视图时(在收到推送通知之前需要加载此视图),请订阅此NSNotificationCenter通知。
  3. 发布通知后,将其打印到日志中。

我很难从您的问题中理解这一点,但是如果由于收到推送通知而试图启动的视图控制器是NewsDetailViewController,那么您的代码就不会这么做。您的代码所做的是打印出要记录的通知(假设其他人确保在收到推送通知之前加载了NewsDetailViewController )。

为了在收到推送通知时加载NewsDetailViewController,不需要将通知发送到NSNotification

代码语言:javascript
复制
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{   
    NewsDetailViewController *newsVC = [[NewsDetailViewController alloc] initWithNibName:@"NewsDetailViewController" bundle:nil];
    [self.window.rootViewController.view addSubview:newsVC.view];
}

或者任何其他更适合你的加载逻辑。但是在您发布的当前代码中,在接收推送通知和加载ViewController之间没有任何联系。

我希望这能帮到你。祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32260282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档