Ios 响应用户点击通知-调出相关视图控制器

Ios 响应用户点击通知-调出相关视图控制器,ios,swift,apple-push-notifications,Ios,Swift,Apple Push Notifications,我正在尝试让我的应用程序自动导航到一个通知视图,该视图将显示发送给用户的通知 简而言之,我有一系列定义登录过程的UIViewController对象,如果登录成功,这些对象将链接到UIABViewController。UITabViewController中有5个附加的UIViewController 当用户点击通知横幅时,我希望屏幕显示第四个UIViewController。我已经修补了这个方法一段时间,试图在用户点击通知时显示VC: func application(application:

我正在尝试让我的应用程序自动导航到一个通知视图,该视图将显示发送给用户的通知

简而言之,我有一系列定义登录过程的UIViewController对象,如果登录成功,这些对象将链接到UIABViewController。UITabViewController中有5个附加的UIViewController

当用户点击通知横幅时,我希望屏幕显示第四个UIViewController。我已经修补了这个方法一段时间,试图在用户点击通知时显示VC:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
  let rootViewController = window!.rootViewController as! UINavigationController //the rootVC in the storyboard
  let welcomeVC = rootViewController.topViewController as! WelcomeVC //welcome page
  let loginVC = welcomeVC... //welcomeVC has a segue to this 

  //after loginVC is the UITabViewController
  //I want to show the 4th VC of the UITabViewController when user taps the notification
}
恐怕这种方法行不通。特别是,我还遇到了处理两种不同场景的问题:

当应用程序不在内存中时,用户点击通知 当应用程序在内存中时,用户点击通知
提前谢谢你的建议

如果应用程序在内存中,将调用您发布的方法

如果应用程序不在内存中,则必须依赖于方法应用程序,使用选项完成加载。在launchOptions中,您可以检查UIApplicationLaunchActionsLocalNotificationKey键以获取通知

当应用程序在内存中并且我有一个导航控制器时,我通常会在没有动画的情况下调用popToRootViewController,然后按下仅为最后一个设置动画的控制器


如果您的子VCs与segues链接,则您不能在代码中使用它们,因为它们具有动画效果。相反,您必须使用故事板的InstanceViewControllerWithiIdentifier并在代码中推送/呈现它们,根据需要传递必要的属性,类似于您在prepareForSegue中所做的操作

我不清楚这里的问题是什么?我知道如何检查密钥和获取通知负载。我不知道的是,当用户点击通知并启动应用程序时,如何显示特定的视图控制器。您可以在didFinishLaunghingWithOptions结束时执行相同的操作。我的VCs层次结构是root>welcome>login>tab>5个子VCs。作为对远程通知的响应,我需要联系第四个孩子VC。我在回答中添加了一些关于如何继续的指导。