Sto utilizzando lo storyboard e voglio aprire sempre la stessa vista quando l'utente riceve le notifiche push remote, anche l'app è in background o aperta. La vista che devo presentare è quattro viste dopo il controller della vista iniziale impostato nello storyboard. Ho letto questo post:Apri controller di visualizzazione durante la ricezione di notifiche push remote
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
Così qui è il mio codice:
- (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];
}
Ma quando ricevo la notifica, l'applicazione si blocca con questo errore:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[locationViewController setViewControllers:]: unrecognized selector sent to instance 0x42ccd0'
locationViewController è il punto di vista Ller impostato come iniziale nello storyboard.
Molte grazie.
Supponiamo, "HomeViewController" è il controller della vista iniziale Storyboard, e dopo aver fatto clic su un pulsante, ora sei in "SecondViewController" con il metodo push. Ora ricevi la notifica Push. Vuoi premere "NotificationViewController" o presentarlo modalmente? –
Modalmente, quindi non sono sicuro di capire la tua spiegazione, suggerisci di spingere lo stack fino a quando non ottengo notificacionViewController? Grazie – theomen