我在处理传入的本地通知时遇到很多问题。 我的应用程序使用故事板,并有一个tabbarcontroller作为rootviewcontroller。 目前,我发布了来自' didReceiveLocalNotification'的模态视图。以下列方式:
MedicationReminderViewController *vc = [[MedicationReminderViewController alloc] initWithNibName:@"MedicationReminderViewController" bundle:nil];
vc.notificationInfo = [[NSDictionary alloc] initWithDictionary:notification.userInfo];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc];
navController.navigationBar.barStyle = UIBarStyleBlackOpaque;
navController.title = @"title";
UITabBarController *tc = (UITabBarController *)self.window.rootViewController;
UINavigationController *nc = (UINavigationController *)tc.selectedViewController;
[[nc visibleViewController] presentModalViewController:navController animated:YES];
这适用于所有场合但不适用。我想在新窗口中显示模态视图,而不是当时可以显示的任何其他内容。当用户处理传入通知时,模态视图将自行解除,并且在通知进入之前处于活动状态的基础视图将再次可见。我怎样才能做到这一点?
答案 0 :(得分:0)
在window
对象的AppDelegate中执行此操作。我相信你可以在那里做到。
从我的头脑中,我相信它的window.rootViewController。但不确定。
怎么做:
当您收到UILocalNotification时,您可以在AppDelegate中收到它。当通知“到达”时,请使用presentModalViewController
上的self.window.rootViewController
。
更新
来自doc:
如果应用程序是最重要的,并且在系统交付时可见 通知,没有显示警报,没有图标标记,没有声音 玩过的。但是,application:didReceiveLocalNotification:是 如果应用程序委托实现它,则调用它。该 UILocalNotification实例传递给这个方法,并且 委托可以检查其属性或访问来自的任何自定义数据 userInfo字典。
使用application:didReceiveLocalNotification:
方法。我希望能回答你的问题。