在 iPhone 通知中心单击消息时如何转到特定视图?

Posted

技术标签:

【中文标题】在 iPhone 通知中心单击消息时如何转到特定视图?【英文标题】:How to go to a specific view when clicking a message in iPhone notification center? 【发布时间】:2012-06-17 05:42:35 【问题描述】:

请给我一些关于这个案例的提示。我有一个可以接收推送通知的 iPhone APP。当我在通知中心点击这个通知时,我的APP就会启动。有没有办法配置我的APP中的屏幕根据收到的通知而不是默认屏幕显示。应该是可以的,因为我在一些APP中看到过这些行为。搜索答案后,我得到了以下方法,但是如果应用程序在后台并且我单击通知中心中的消息 didFinishLaunchingWithOptions 并且不会调用 didReceiveRemoteNotification ,而是会调用 applicationWillEnterForeground 。在这种情况下,如何将数据传递给应用程序。

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions




// will be called when in foreground
(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo     

 

【问题讨论】:

【参考方案1】:

在提供的委托方法didReceiveRemoteNotification中呈现您想要的UI或功能是一件简单的事情。

我不使用故事板,但您应该能够交换应用程序的当前根视图,或者在触发该方法时提供不同的功能。

你的问题有点含糊,因为你已经知道如何去做了。

【讨论】:

最简单的方法是在故事板中创建一个视图控制器并给它一个标识符。使用UIStoryboard 的instanceViewControllerWithIdentifier 方法(将相同的标识符作为参数),您将获得对该视图控制器的引用。然后,您可以以模态方式显示它或将其推送到导航堆栈上。如果这不能回答您的问题,您必须澄清您的问题。【参考方案2】:

userInfo 或launchOptions 字典将包含有关正在发送的通知的信息。您可以根据这些通知(例如通知的标题或发送的日期/时间)决定要显示的视图。

【讨论】:

谢谢,其实我知道如何获取信息,但我不知道如何在Storyboard APP中显示特定屏幕。你能告诉我吗? 抱歉,我刚刚查过了。如果应用程序在后台,我单击通知中心的消息。不会调用 didFinishLaunchingWithOptions 和 didReceiveRemoteNotification,而是调用 applicationWillEnterForeground。在这种情况下,如何将数据传递给应用程序。

以上是关于在 iPhone 通知中心单击消息时如何转到特定视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在通知选项卡中单击推送通知消息打开特定片段?

在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?

iPhone如何以编程方式访问通知中心

当用户从 Cordova 的 iOS 通知中心选择通知时更改状态

如何在 iPhone 应用程序中接收推送通知消息?

如何仅在 iphone 中显示特定的推送通知?