我在管理本地通知的一个方面遇到了问题——删除iOS 6中的单个通知。
我能够创建带有文本内容和触发时间的本地通知并使其工作。
在iOS 5上,通知会出现在主屏幕上的AlertView中,有两个按钮,触摸其中任意一个后就会消失。我可以使用
在iOS 6上,通知会在Notificaton Center中出现,如上所示。如果使用
我的问题是:
我不能抹掉Notification Center中的这个单独的已触发通知。例如,我希望通知在触摸后消失,或在应用程序内部执行某些操作后消失。
我尝试过:
- 使用
我的解决方法:
我使用
正如你所看到的,这是一个相当愚蠢和多余的解决方案,但迄今为止我找不到更好的解决方法。
有什么建议吗?
我能够创建带有文本内容和触发时间的本地通知并使其工作。
在iOS 5上,通知会出现在主屏幕上的AlertView中,有两个按钮,触摸其中任意一个后就会消失。我可以使用
[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
取消通知的触发。在这里没有问题。在iOS 6上,通知会在Notificaton Center中出现,如上所示。如果使用
[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
取消它,它将不会触发,它会起作用。但是,在它被触发后...我的问题是:
我不能抹掉Notification Center中的这个单独的已触发通知。例如,我希望通知在触摸后消失,或在应用程序内部执行某些操作后消失。
我尝试过:
- 使用
[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
- 取消通知触发(实际上这是没有必要的,因为通知已经触发了),但无法从Notification Center中抹掉已触发的通知。
- 从[[UIApplication sharedApplication] scheduledLocalNotifications]
数组中删除项目 - 不起作用,因为此函数始终返回空数组,无论设置多少(有效!)通知(有人知道为什么吗?)我的解决方法:
我使用
[[UIApplication sharedApplication] cancelAllLocalNotifications]
来删除所有通知——它会取消它们并从Notification Center中擦除,然后重新创建它们,但不包括我想要抹去的那个。正如你所看到的,这是一个相当愚蠢和多余的解决方案,但迄今为止我找不到更好的解决方法。
有什么建议吗?
[[UIApplication sharedApplication] scheduledLocalNotifications]
时我会得到一个空数组。我猜我暂时会使用你的解决方案。 - IgniteCoders