Open-view-controller beim Empfang von remote-Push-Benachrichtigung
Ich bin mit dem storyboard , und ich möchte zu öffnen, immer die gleiche Ansicht, wenn der Benutzer empfängt remote-push-Benachrichtigungen, auch die app im hintergrund läuft oder geöffnet werden. Die Ansicht, die ich präsentieren müssen, ist vier Ansichten nach der ersten view-controller-set in das storyboard. Ich lese diese Beiträge:
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 ab mit dieser Fehlermeldung:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[locationViewController setViewControllers:]: unrecognized selector sent to instance 0x42ccd0'
locationViewController ist die view-controller-set als erste in das storyboard.
Vielen Dank.
- Angenommen, "HomeViewController" ist das initial view controller im Storyboard, und nach dem Klick auf eine Schaltfläche, sind Sie jetzt in "SecondViewController" push-Methode. Nun, sind Sie immer eine Push-Benachrichtigung. Wollen Sie push "NotificationViewController" oder präsentieren Modal?
- Modal, also ich bin mir nicht sicher, zu verstehen, Ihre Erklärung, Sie vorschlagen, um schieben Sie den Stapel bis ich notificacionViewController? Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie bitte den folgenden code:
Mein code unterscheidet sich ein wenig von den Antworten, die ich gesehen habe. Die Tatsache ist, dass der einzige code, der funktioniert bei mir, ist die folgende:
1.- Instanziieren de navigationController. In der Regel rootviewcontroller in der überwiegenden Mehrzahl der Fälle, aber nicht in allen
2.- Instanziieren Sie das storyboard. Usuarlly tagged as MainStoryboard
3.- Instanziieren Ihre spezifischen view-controller. Müssen Sie die Anpassung für Ihren speziellen Fall
4.- Schieben, als Sie tun sollten, denn Sie haben alles was Sie brauchen,