在远程通知上打开正确的消息线程 - iOS Swift 带解析的聊天应用程序
Open correct message thread on remote notification - iOS Swift Chat application with parse
很像现有的聊天应用程序(fb 聊天、imessages),我希望能够在用户响应通知横幅时将他们带到消息线程屏幕。
VC 层次结构:TabBarController -> NavController -> MessageThreadsTVC -> 消息VC
MessageThreadsTVC 本质上是一个联系人列表,当我点击一个联系人时,它会执行一个 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)
很像现有的聊天应用程序(fb 聊天、imessages),我希望能够在用户响应通知横幅时将他们带到消息线程屏幕。
VC 层次结构:TabBarController -> NavController -> MessageThreadsTVC -> 消息VC
MessageThreadsTVC 本质上是一个联系人列表,当我点击一个联系人时,它会执行一个 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)