通过点击本地通知呈现特定视图
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以上是关于通过点击本地通知呈现特定视图的主要内容,如果未能解决你的问题,请参考以下文章
从 UILocalNotification 呈现视图控制器的问题