通过点击本地通知呈现特定视图

Posted

技术标签:

【中文标题】通过点击本地通知呈现特定视图【英文标题】:present specific view by tapping on local notification 【发布时间】:2014-08-10 09:10:22 【问题描述】:

我的应用中有 2 个本地通知。我想展示来自 notification1 的 view1 和来自 notification2 的 view2 。我该怎么做 ?而且我还想通过按主页按钮在进入非活动或背景状态之前的任何视图上显示它。

UILocalNotification *notif1=[UILocalNotification alloc]init];
UILocalNotification *notif2=[UILocalNotification alloc]init];
//when user tapped on notif1 
[self presentViewController:vc1 animated:YES completion:nil];
//when user tapped on notify2     
[self presentViewController:vc2 animated:YES completion:nil];  

【问题讨论】:

【参考方案1】:

您可以使用-application:didReceiveLocalNotification:notification 委托方法。

在您的应用委托中,如下所示实现此委托并检查应用当前是否处于活动状态。如果不是,请告诉根视图控制器呈现您的新视图控制器。

这是一个例子:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
    if (application.applicationState != UIApplicationStateActive) 
        ViewControllerName *viewController = [ViewControllerName new];
        [self.window.rootViewController presentViewController:viewController];
    

您必须稍微修改一下以处理不同的通知;不过,这应该不会太难。

【讨论】:

我怎么知道用户点击了哪个通知? @user2096064 ,要知道您必须通过查看通知参数的字典来检查通知参数的名称或键:notification.userInfo

以上是关于通过点击本地通知呈现特定视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS 通过本地通知显示特定的视图控制器

从 UILocalNotification 呈现视图控制器的问题

如果应用程序在前台,单击本地通知打开特定的视图控制器?

如何在单击本地通知时获取特定的视图控制器?..我尝试了所有可能的方法来实现但不能

当应用程序处于终止状态而没有用户交互时如何清除本地通知。

本地通知问题?