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

时间:2015-09-24 00:34:56

标签: ios swift apple-push-notifications

我试图让我的应用自动导航到通知视图,该视图将显示发送给用户的通知。

简单地说,我有一系列UIViewController个对象来定义登录过程,如果登录成功,它会链接到UITabViewController。在UITabViewController内附加了UIViewControllers

当用户点按通知横幅时,我希望屏幕显示第四个 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
}

我担心这种做法不起作用。特别是,我还有处理2种不同场景的问题:

  1. 用户在应用不在内存中时点击通知
  2. 用户在应用内存时点击通知
  3. 提前感谢您的建议!

1 个答案:

答案 0 :(得分:0)

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

如果应用程序不在内存中,则必须依赖方法application(_,didFinishLoadingWithOptions)。在launchOptions中,您可以检查密钥UIApplicationLaunchOptionsLocalNotificationKey以获取通知。

当应用程序在内存中时我通常会做的事情是我有一个导航控制器,调用popToRootViewController没有动画,然后推动控制器只为最后一个设置动画。

如果您的子VC与segue链接,则无法在代码中使用它们(因为它们具有动画效果)。相反,您必须使用故事板instantiateViewControllerWithIdentifier并在代码中推送/显示它们,并根据需要传递必要的属性(类似于您在prepareForSegue中所做的操作)。