Ich verwende Storyboard, und ich möchte immer die gleiche Ansicht öffnen, wenn der Benutzer Remote-Push-Benachrichtigungen erhält, auch die App ist im Hintergrund oder geöffnet. Die Ansicht, die ich präsentieren muss, ist vier Ansichten nach dem ersten View-Controller, der im Storyboard festgelegt wurde. Ich lese diese Beiträge:Open-View-Controller beim Empfang von Remote-Push-Benachrichtigung
How can I show a modal view in response to a notification as a new window? (no parent vc)
Open a specific tab/view when user receives a push notification
So, hier ist mein Code:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
notificacionViewController *menu = [navController.storyboard instantiateViewControllerWithIdentifier:@"notificacion"];
// First item in array is bottom of stack, last item is top.
navController.viewControllers = [NSArray arrayWithObjects:menu,nil];
[self.window makeKeyAndVisible];
}
Aber wenn ich eine Benachrichtigung erhalten, die App stürzt mit diesem Fehler:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[locationViewController setViewControllers:]: unrecognized selector sent to instance 0x42ccd0'
locationViewController ist die Ansichtssteuerung Als Initial im Storyboard eingestellt.
Vielen Dank.
Angenommen, „HomeViewController“ ist der erste View-Controller in der Storyboard, und nach dem Klicken auf eine Schaltfläche, jetzt Sie sind in "SecondViewController" per Push-Methode. Jetzt erhalten Sie eine Push-Benachrichtigung. Möchten Sie "NotificationViewController" drücken oder modal präsentieren? –
Modally, so bin ich mir nicht sicher, deine Erklärung zu verstehen, schlägst du vor, den Stapel zu schieben, bis ich notificacionViewController bekomme? Danke – theomen