Почему я хочу использовать presentModalViewController в AppDelegate?
- Обработка didReceiveLocalNotification, поэтому я могу запустить отдельный modalView поверх моего приложения для обработки уведомления
Как выглядит моя архитектура взгляда?
- Использование раскадровок
- MainStoryBoard: -> TabBarController-> NavigationController
Что происходит?
- Ничего, вот в чем проблема :-D
- Когда я нажимаю кнопку действия из UILocalNotification, приложение открывается, но просто показывает последнее открытое представление из tabbarcontroller.
Как вы можете видеть ниже, моей последней попыткой было представить modalViewController поверх этого текущего представления, вот так:
[self.window.rootViewController.tabBarController.selectedViewController.navigationController presentModalViewController:navigationController animated:YES];
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {</p>
<pre><code>UIApplicationState state = [application applicationState];
if (state == UIApplicationStateInactive) {
// Application was in the background when notification was delivered.
NSLog(@"Received notification while in the background");
}
else {
NSLog(@"Received notification while running.");
}
MedicationReminderViewController *controller = [[UIStoryboard storyboardWithName:@"ModalStoryBoard" bundle:nil] instantiateViewControllerWithIdentifier:@"MedicationReminderVC"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
[self.window.rootViewController.tabBarController.selectedViewController.navigationController presentModalViewController:navigationController animated:YES];
}
Обновление
Кажется, что это ноль:
self.window.rootViewController.tabBarController.selectedViewController.navigationController
Решение
[self.window.rootViewController presentModalViewController: навигационный анимированный контроллер: ДА];