【发布时间】:2020-01-14 15:00:32
【问题描述】:
我有一个以导航控制器为根控制器的应用程序。通常浏览应用程序的唯一方法是 ViewController1->ViewController2->ViewController3。我的应用有一个在应用关闭时弹出的通知,当用户点击它时它需要显示 ViewController4。从 ViewController4 用户需要能够导航回 ViewController3,然后是 ViewController2,然后是 ViewController1,尽管他们从未真正访问过这些视图控制器。有没有办法直接启动应用到 ViewController4 中,人为的将前面的 3 个 ViewController 插入到层次结构中?
我已经尝试使用.pushViewController(ViewController4, animated: true) 将它推送到根导航控制器,当应用程序已经在前台时它可以工作并将它从你所在的任何地方粘贴到导航堆栈的顶部,但它不能保证 1 , 2, 和 3 在它后面(没有别的);如果应用程序在通知发生时完全关闭,那么它根本无法显示任何内容并且只会崩溃。
【问题讨论】:
-
您不仅可以使用您的导航控制器推送 VC4,还可以在 4 之前推送 1、2、3。您可以在没有动画的 AppDelegate 中执行此操作。但总的来说,我认为您应该考虑 VC4 的模态演示。
标签: swift uinavigationcontroller