Я использую Xcode 11 и Swift 5.
Получив уведомление APNS, мне нужно перейти к контроллеру представления глубоко в моей раскадровке из AppDelegate. Этот viewController (chatVC) находится за панелью вкладок, контроллером навигации и несколькими другими контроллерами представления. Смотрите изображение ниже. Я знаю, как проверить уведомление о тегах и как использовать launchOptions в AppDelegate для запуска перехода. Но я борюсь с тем, как установить контекст для этого последнего контроллера представления, чтобы пользователь мог использовать кнопку «Назад» вплоть до контроллера панели вкладок.
Я прочитал много SO-ответов и перепробовал много подходов, но ни один из них, похоже, не имеет такого же встраивания контроллера nav в контроллер панели вкладок. Вот мой код в AppDelegate (после прочтения тега в уведомлении):
if tag == "CS" {
// Set up a Chat View Controller.
if let chatVC = UIStoryboard(name: "Main", bundle: .main).instantiateViewController(withIdentifier: Constants.Storyboard.chatVC) as? NewChatViewController,
let tabBarVC = UIStoryboard(name: "Main", bundle: .main).instantiateViewController(withIdentifier: Constants.Storyboard.tabBarController) as? UITabBarController,
let csVC = UIStoryboard(name: "Main", bundle: .main).instantiateViewController(withIdentifier: Constants.Storyboard.csViewController) as? CustomerServiceViewController,
let helpVC = UIStoryboard(name:"Main", bundle: .main).instantiateViewController(withIdentifier: Constants.Storyboard.helpVC) as? HelpViewController
{
// Set the customer service document Id.
chatVC.cs = cs
// Make the tabBarVC the Root View Controller
self.window?.rootViewController = tabBarVC
self.window?.makeKeyAndVisible()
// Select the Favorites Index.
tabBarVC.selectedIndex = 0
// Push the Customer Service VC on top.
tabBarVC.show(csVC, sender: Any?.self)
// Push the Help VC on top of Customer Service VC.
csVC.show(helpVC, sender: Any?.self)
// Push the the chat detail page on top.
helpVC.show(chatVC, sender: Any?.self)
}
}
}
return true
Что я могу сделать, чтобы перейти к chatVC и настроить под ним контекст навигации, чтобы можно было использовать кнопку «Назад»?