本地通知后 Xcode 显示特定视图

Posted

技术标签:

【中文标题】本地通知后 Xcode 显示特定视图【英文标题】:Xcode Show Specific View After Local Notification 【发布时间】:2014-03-09 11:35:48 【问题描述】:

我的应用发送本地通知,每个通知都有一个 ID。一旦用户单击其中一个通知,它应该会出现一个应该收到通知 ID 的特定视图。

例如。出现 ID 23 的通知,用户点击它,应用程序应显示屏幕“详细信息”,其中将加载 id 23 的所有信息。

所以在我的 AppDelegate 中我使用这个方法来拦截用户通知点击。

- (void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

但是在这种方法中,如果我执行 segue,它就不起作用。 而是使用以下代码它几乎可以工作,但“eventDetails”视图显示为空,因为我无法将通知 ID 传递给它。

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"eventDetails"];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window setRootViewController:navigationController];
    //[self.window setBackgroundColor:[UIColor whiteColor]];
    [self.window makeKeyAndVisible];

【问题讨论】:

【参考方案1】:

你可以试试这个方法,希望对你有用

    - (void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

     // codes of Local Notification
     [self.rootviewcontroller.view addSubView:infoView];


【讨论】:

【参考方案2】:

找到解决方案!

我在我的 appdelegate.m 上添加了这个:

#import "eventDetailsController.h"

并将之前的代码改成如下:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    eventDetailsController *edView = [[dettaglioEvento alloc] init];
    edView = [mainStoryboard instantiateViewControllerWithIdentifier:@"eventDetails"];
    edView.passedId = self.idToShow;

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:edView];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window setRootViewController:navigationController];
    //[self.window setBackgroundColor:[UIColor whiteColor]];
    [self.window makeKeyAndVisible];

【讨论】:

以上是关于本地通知后 Xcode 显示特定视图的主要内容,如果未能解决你的问题,请参考以下文章

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

如何从xcode中的tableview中删除本地通知

触发本地通知时的自定义视图

如何阻止计划的本地通知在特定日期后触发?

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

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