AppDelegateでpresentModalViewControllerを使用する理由を教えてください。 - didReceiveLocalNotificationを処理していますので、私のアプリの上に通知を処理する別のmodalViewを起動することができます私のpresentModalViewControllerがAppDelegateの内部から動作しないのはなぜですか?
私のビューアーキテクチャはどのように見えますか? - ストーリーボードの使用 - MainStoryBoard: - > TabBarController-> NavigationController
何が起こっているか - 何も問題ありません:-D - UILocalNotificationからアクションボタンを押すと、アプリケーションが開きますが、tabbarcontrollerの最後の開いているビューが表示されます。
あなたが私の最後の努力はそうのように、その現在のビューの上にmodalViewControllerを提示したの下に見ることができるように: [self.window.rootViewController.tabBarController.selectedViewController.navigationController presentModalViewController:navigationController animated:YES];
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
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];
}
更新
これがnilであるようです: self.window.rootViewController.tabBarController.selectedViewController.navigationController
Solution
[self.window.rootViewController presentModalViewController:navigationController animated:YES];
self.window.rootViewController.tabBarController.selectedViewController.navigationController == nilを? – NeverBe
ありがとうございます。はい、ちょうどテストされ、実際にはゼロです。なぜそれがうまくいかなかったのだろうか。しかし、なぜそれは無しで、どこからここに行くのですか? – Pieter
[self.window.rootViewController presentModalViewController:navigationController animated:YES]; – NeverBe