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

我已成功实现,以便正确发送和接收推送。我需要帮助的是在实际尝试对通知进行操作时如何思考。

我知道该怎么做,但是我有一些困扰我的问题,很难在网上专门搜索这样的问题,因此在经过数小时的搜索和思考之后,我放弃了并考虑与大家分享我的问题。

现在转到实际问题:

我应该在哪里实现代码来处理推送通知以执行某些操作?在我的应用程序中,将出于不同目的使用不同的推送通知,每种情况都需要应用程序执行某些操作。我是否应该在拥有的每个viewController上编写相同的代码来处理推送通知(因为我在想我无法真正知道收到推送时用户将在哪里),或者显然有一个更聪明/更清洁的解决方案?

可以说,特定的推送通知应该发出警报,用户可以在其中按下两个按钮。如果我有三个不同的视图,则意味着三个不同的viewControllers是否需要实现相同的代码才能在每个VC上发出警报?

如果我的问题不清楚,请让我知道,我将尝试更详尽地解释。谢谢..

最佳答案

我通常创建一个处理通知的类,并对该类进行引用,我称之为演示管理器,该类知道如何实例化视图控制器(它基本上保留了对故事板的引用,并为应用程序委托处理了Windows设置)。应用程序委托实例化此通知处理程序,并将所有本地/远程通知转发给它。

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

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

如果为该演示实现自定义演示控制器,则还可以创建一个自定义VC,并使它看起来像是模态对话框/弹出窗口。或像Facebook Messenger一样从顶部向下延伸的栏。

09-25 18:45
查看更多