我有一个ViewController,希望在从锁定屏幕打开推送通知时呈现。
该视图控制器嵌入在一系列视图控制器中,链如下:
TabbedBarController(根) -> NavigationController0 -> ViewController0 -> ViewController1 -> ViewControllerIWant
我有两个来自推送通知的变量,想传递到ViewControllerIWant中。
到目前为止,我有:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootVC = storyboard.instantiateViewControllerWithIdentifier("HomeVC") as! UITabBarController // HomeVC is the TabbedBarController
let NaviVC = storyboard.instantiateViewControllerWithIdentifier("NavigationController0") as! UINavigationController // NavigationController0 is the Navigation Controller for this stack
let ViewController0 = storyBoard.instantiateViewControllerWithIdentifier("ViewController0") as ViewController0
let ViewController1 = storyBoard.instantiateViewControllerWithIdentifier("ViewController1") as ViewController1
let ViewControllerIWant = storyBoard.instantiateViewControllerWithIdentifier("ViewControllerIWant") as ViewControllerIWant
// Pass the Variables into ViewControllerIWant
ViewControllerIWant.Variable0 = "This is the first Variable"
ViewControllerIWant.Variable1 = "this is the second variable"
// Load the VC
self.presentViewController(ViewControllerIWant, animated:true, completion:nil)
我可以直接加载所需的ViewController,但这样会失去导航和选项卡控制器,因此需要关闭应用程序并重新加载才能向后移动。如何嵌套VC,以便用户滑动此通知时加载ViewControllerIWant?
present
和push
方法设置所有的 VC,传递animated:false
。(对于 presenting/pushingViewControllerIWant
使用true
。) - Aaron Brager