我的目标:当用户通过回复远程通知启动应用时,
HomeViewController: UITabBarController
是根。每个标签都有UINavigationController
。 ConversationGroupTableViewController: UITableViewController
位于第四个标签页,显示对话组列表。ConversationGroupDetailViewController: UITableViewController
已从tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
ConversationGroupTableViewController
加载。它显示该对话组中的消息列表。示例案例:通知用户新消息已到达。当用户通过响应远程通知启动应用时,应向用户显示其导航堆栈中包含ConversationGroupDetailViewController
和ConversationGroupTableViewController
的{{1}}实例,以便用户可以按下按钮来达到他们。
代码:
在HomeViewController
:
AppDelegate.swift
我认为我正在走上正轨,但我似乎无法弄明白该如何做到这一点。我将不胜感激任何帮助!
编辑: 我做了更多的实验并更新了代码。这段代码完成了我想要的。
答案 0 :(得分:0)
@Harfangk
延迟1秒后调用此方法。因为你在启动应用程序时正在推动控制器。
func instantiateViewControllerFromNotification(notificationDictionary: NSDictionary) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateInitialViewController() as! UITabBarController
initialViewController.selectedIndex = 3
let navigationController = storyboard.instantiateInitialViewController().viewControllers![3] as! UINavigationController
let tableViewController = storyboard.instantiateViewControllerWithIdentifier("ConversationGroupTableViewController") as! ConversationGroupTableViewController
let detailViewController = storyboard.instantiateViewControllerWithIdentifier("ConversationGroupDetailViewController") as! ConversationGroupDetailViewController
navigationController.pushViewController(tableViewController, animated: false)
navigationController.pushViewController(detailViewController, animated: false)
}