在远程通知上打开正确的消息线程 - iOS Swift 带解析的聊天应用程序

Open correct message thread on remote notification - iOS Swift Chat application with parse

很像现有的聊天应用程序(fb 聊天、imessages),我希望能够在用户响应通知横幅时将他们带到消息线程屏幕。

VC 层次结构:TabBarController -> NavController -> MessageThreadsT​​VC -> 消息VC

MessageThreadsT​​VC 本质上是一个联系人列表,当我点击一个联系人时,它会执行一个 segue,将所选行的标识符传递到目标 VC,这样它就知道哪些数据从服务器拉。目前没有数据保存在 phone 上,所有数据都是从相关 viewDidLoad 中的 Parse 获取的。

到目前为止,我已经能够使用以下方法将应用程序打开到所需的选项卡:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {


    if(application.applicationState == UIApplicationState.Inactive) {

        println("Inactive");

        //Show the view with the content of the push
        // User opened the push notification
        var tabbc:UITabBarController = self.window?.rootViewController as UITabBarController
        tabbc.selectedIndex = 2

但是,如何在 viewController 的 2 个以上级别中导航并在 MessagesVC 中实例化相关变量?我在哪里有时间查询数据库以从我在远程通知中传递的 objectID 字符串中解析匹配的 PFUser 对象?

        var tabbc:UITabBarController = self.window?.rootViewController as UITabBarController
        tabbc.selectedIndex = 2

        var navVC = tabbc.selectedViewController as UINavigationController

        if (navVC.topViewController.isKindOfClass(MessagesTableViewController)){
            navVC.popToRootViewControllerAnimated(false)
        }
        var topViewController = navVC.topViewController as MessageThreadsTableViewController

topViewController.targetUser = (objects[0] as PFUser)
                            topViewController.performSegueWithIdentifier("selectThread", sender: topViewController)