IOS Notification实现设计技巧

标签 ios objective-c iphone push-notification apple-push-notifications

我目前正在开发我的应用程序,使用 Parse.com 服务来发送推送。

我已成功实现,因此可以正确发送和接收推送。我需要帮助的是在实际尝试对通知做某事时如何思考。

我知道怎么做,但我有一些问题困扰着我,而且很难在网上专门搜索这样的问题,所以经过数小时的搜索和思考后,我放弃了,并想与分享我的问题你们。

现在进入实际问题:

我应该在哪里实现代码来处理推送通知来做某事?在我的应用程序中,会有针对不同目的的不同推送通知,每个推送通知都要求应用程序做一些事情。我是否应该编写相同的代码来处理我拥有的每个 viewController 上的推送通知(因为我认为我无法真正知道收到推送时用户会在哪里)或者显然有更智能/更清洁的解决方案?

假设一个特定的推送通知应该在用户可以按下两个按钮的地方发出警报。如果我有三个不同的 View ,这意味着三个不同的 View Controller ,我是否需要实现相同的代码来在每个 VC 上执行警报?

如果我的问题不清楚,请告诉我,我会尽力解释得更透彻。谢谢..

最佳答案

我通常会创建一个类来处理通知并引用我称之为演示管理器的东西,它知道如何实例化 View Controller (它基本上保留对 Storyboard的引用并处理应用程序委托(delegate)的窗口设置)。应用程序委托(delegate)实例化此通知处理程序并将所有本地/远程通知转发给它。

为了显示通知的 UI,我选择使用一个操作队列,就像在 WWDC15 session “Advanced NSOperation”中描述的那个苹果。我只是安排呈现 VC 并在 VC 被解散时完成的操作。这些 UI 操作是相互排斥的(请参阅苹果示例代码中的 AlertOperation)。这样,当收到大量通知但用户尚未关闭第一个通知的 UI 时,我不会显示多个 VC。

我们通过从主 UIWindow 的 rootViewController 遍历到最里面的 presentedViewController 来呈现这种“模态”VC。这为您提供了一个 VC,只要您不使用特殊的表示上下文配置,就可以调用 presentViewController()。 (同样,可以为您执行此查找的演示文稿管理器在这里派上用场)

如果您为该演示文稿实现自定义演示 Controller ,您还可以创建自定义 VC 并使其看起来像模态对话框/弹出窗口。或者像 Facebook Messenger 使用的那样从顶部向下的栏。

关于IOS Notification实现设计技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404408/

相关文章:

iphone - 应用程序是否需要询问用户偏好以便将 iCloud 用于简单数据?

ios - 如何使用 UINib 实例化和使用自定义 UITableViewCells

iphone - IOS解析PDF和GOTOR链接的问题

ios - 如何在不同的 View Controller 中分离模块

iphone - 为动态创建的 UIView 设置动画

php - 从 iOS 应用程序将图像存储到 MYSQL 数据库中

ios - UILongPressGestureRecognizer 和 UIPanGestureRecognizer 组合

iphone - 另一个 UIViewController 中的 UIViewController 的新实例 : Why can't I set an instance variable?

iphone - 两指滑动手势

ios - 如何调整 UIImageView 的大小(快速)