收到推送通知时显示模式

Posted

技术标签:

【中文标题】收到推送通知时显示模式【英文标题】:Show modal upon receiving push notification 【发布时间】:2010-08-23 04:55:36 【问题描述】:

每当收到推送通知时(在应用程序运行时),我都需要显示通知模式。我的应用程序有一个标签栏,我通过将通知模式推送到标签栏控制器来部分工作。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo         
    NotificationViewController *vc = [[NotificationViewController alloc] init];
    [tabBarController presentModalViewController:vc animated:YES];
    [vc release];

但是,当已经有一个隐藏标签栏控制器的不同模式打开时,这似乎失败了。确保 NotificationViewController始终在收到推送通知时显示的最佳方法是什么,即使已经有一个模式打开隐藏了标签栏控制器?

【问题讨论】:

【参考方案1】:

您可以做两件事。首先是关闭当前的模态控制器,但这可能会使用户感到困惑。第二件事是这样的:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo       
    UIViewController* currentController = tabBarController;
    if ( [currentController modalViewController] != nil )
          currentController = [currentController modalViewController];

    NotificationViewController *vc = [[NotificationViewController alloc] init];
    [currentController presentModalViewController:vc animated:YES];
    [vc release];

可能不是最漂亮的事情,因为它在模态控制器中打开另一个模态控制器,但它可以工作。

【讨论】:

以上是关于收到推送通知时显示模式的主要内容,如果未能解决你的问题,请参考以下文章

应用打开时显示本机推送通知?

使用 Parse 推送通知:当应用程序处于后台时显示警报

如何在前台接收推送通知时显示颤振本地通知?

在 iOS 上使用 Airplay 时显示推送通知?

NewsStand,在需要时显示推送通知警报视图?

应用在前台运行时收到 iOS 推送通知