从未打开的ViewController执行Segue

时间:2018-09-18 14:19:46

标签: ios swift xcode segue

我有一个后台任务,该任务从AppDelegate运行,需要时它显示通知。

点击这些通知后,它们应将用户定向到与通知相关的ViewController。

我想知道是否可以通过AppDelagate进行监视。

我的ViewController在导航控制器中。我猜想我必须实例化我的根视图控制器并在那里执行segue,只是不确定如何从appdelegate进行操作。

编辑: 到目前为止,这是我的代码,它可以正常工作,只是没有嵌入我的导航控制器中

 if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ConversationVC") as? conversationTableViewController {
            if let window = self.window, let rootViewController = window.rootViewController {
                var currentController = rootViewController
                while let presentedController = currentController.presentedViewController {
                    currentController = presentedController
                }
                currentController.present(controller, animated: true, completion: nil)
            }
        }

1 个答案:

答案 0 :(得分:1)

您无法从尚未加载的情节提要中进行筛选。

根据您的情况,您可以:

1:将数据从AppDelegate发送到当前情节提要的初始根视图控制器,然后从那里,根据数据创建多个标记到受人尊敬的VC。

OR

2:创建多个情节提要板(每种情况下一个),并根据通知从AppDelegate启动相应的情节提要。

编辑:需要查看情节提要。对于变量,将其添加到sessionTableTableViewController并在呈现它之前进行设置:

controller.myVar = "someValue"
self.window.rootViewController = controller
self.window.makeKeyAndVisible()