我正在开发一个使用iOS的UILocalNotifications的应用程序来警告用户他们需要完成操作。我能够创建我的通知并正确启动它们。但是,当返回应用程序时,我遇到了问题。第一次通知后,我的应用程序被激活:didRecieveLocalNotification'每次都使用第一个通知数据运行。我可以注销队列中的所有通知,即使队列为空,它仍然会运行通知块。有没有其他人遇到这个问题或知道如何解决它。我在下面包含了我的didRecieveLocalNotification代码。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (notification) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
[(UITabBarController *)self.window.rootViewController setSelectedIndex:1];
UINavigationController *nav = [[(UITabBarController *)self.window.rootViewController viewControllers] objectAtIndex:1];
IMTUpdateRewardViewController *rvc = [storyboard instantiateViewControllerWithIdentifier:@"updateReward"];
[rvc loadPushNotification:notification];
[nav pushViewController:rvc animated:NO];
}
}
答案 0 :(得分:1)
我遇到了类似的问题。最终罪魁祸首是我的一个错误,这与生成事件提醒有关。如果从背景返回,有已经开始的事件,则生成本地通知,并立即解雇。简而言之,当你遇到这样的事情时,在你的UILocalNotification生成方法上放一个小的调试打印输出