在推送通知后过渡到特定的视图控制器.不同的故事板和不同的选项卡



当推送通知到达时,我想将用户发送到特定的视图控制器(此视图控制器是导航层次结构中的第二个,也在第三个选项卡上,并且也位于不同的情节提要上(。当用户被发送到此屏幕时,我还希望维护导航堆栈,以便后退按钮可见,并且当点击后退按钮时,需要将用户发送到该选项卡上的第一个按钮。

这是我的结构:

Storyboard1: tab1 -> VC1 
Storyboard2: tab2 -> VC2
Storyboard3: tab3 -> VC3a -> VC3b 
Storyboard4: tab4 -> VC4

当推送通知到达时,用户应被发送到 VC3b(在情节提要 3 中定义(,点击该屏幕上的后退按钮应将用户带到 VC3a。VC3b 还有一个名为 userId 的变量,我需要设置它。我通过通知获取用户 ID 值。

到目前为止,我拥有的:

let userId = notification["userId"] as! String
let storyboard = UIStoryboard(name: "Storyboard3", bundle: nil)
let vc3b = storyboard.instantiateViewController(withIdentifier: "vc3b") as! VC3b
vc3b.userId = userId
window?.rootViewController = vc3b

上面的代码无法正常工作。它只是将用户带到应用程序的默认屏幕。

任何帮助将不胜感激。

我假设第三个选项卡插入导航控制器内部,所以

let tab = storyboard.instantiateViewController(withIdentifier: "tab") as! UITabBarController {
tab.selectedIndex = 2 // third tab
self.window?.rootViewController = tab
let nav = tab.viewController![2] as! UINavigationController
nav.pushViewController(vc3b,animated:true)

最新更新