Вы будете получать управление в «didReceiveRemoteNotification» всякий раз, когда пользователь нажимает на уведомление.
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController = storyboard.instantiateViewControllerWithIdentifier("DetailViewController") as! DetailViewController
self.window?.rootViewController?.presentViewController(navigationController, animated: true, completion: {})
}
Здесь вы также можете определить, находится ли приложение в активном состоянии или неактивно, и соответственно выполнить презентацию.
Так что получите rootViewController и представьте экран, который вам нужно показать.
Также, если вам нужно поместить контроллер в уже представленный стек навигации, вы можете извлечь контроллер навигации из окна, а затем нажать на него определенный контроллер.
Решение показать контроллер, который вам нужно представить, может быть получено из полученного userInfo.
Таким образом, вы можете открыть любой конкретный контроллер, который вы хотите.