收到推送通知时显示模式
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];
可能不是最漂亮的事情,因为它在模态控制器中打开另一个模态控制器,但它可以工作。
【讨论】:
以上是关于收到推送通知时显示模式的主要内容,如果未能解决你的问题,请参考以下文章