application:didReceiveLocalNotification在第一次本地通知后运行每次启动

时间:2013-10-08 11:48:59

标签: ios uilocalnotification

我正在开发一个使用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];
    }
}

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。最终罪魁祸首是我的一个错误,这与生成事件提醒有关。如果从背景返回,有已经开始的事件,则生成本地通知,并立即解雇。简而言之,当你遇到这样的事情时,在你的UILocalNotification生成方法上放一个小的调试打印输出