【发布时间】:2013-02-18 19:38:46
【问题描述】:
应用收到推送通知后,我想更改我的主ViewController 上的一些按钮的标题。为了实现这种行为,我在我的应用程序委托中重写了 application: didReceiveRemoteNotification: 方法,以使用我想更新的控制器作为其根视图控制器重新实例化 UINavigationController,将按钮的标题设置为我想要的任何内容:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.welcomeViewController];
[self.window setRootViewController:navController];
[self.welcomeViewController.buttonToUpdate setTitle: @"Updated Text" forState: UIControlStateNormal];
}
虽然这可能不是最好的解决方案(也许我可以完全忘记 UIButtons 并让视图控制器使用 UITableView 并将其行用作按钮?),但它适用于以下场景:
1) 应用在前台。推送通知提醒弹出,用户点击OK,视图更新正常。
2) 后台/关闭的应用程序。设备处于锁定模式。推送通知到达,用户解锁设备,加载应用,视图也更新正常。
例如,当用户使用另一个应用程序时,问题似乎出现了,并且推送通知到达,但用户不是通过推送通知而是通过点击应用程序图标打开应用程序。在这种情况下,application: didReceiveRemoteNotification: 似乎没有被调用,并且问题中的视图永远不会更新。
希望我的解释清楚。我愿意接受有关不同方法的建议,或者如何使用我的方法处理最后一种情况。
谢谢!
【问题讨论】:
标签: ios ios6 push-notification apple-push-notifications