gpt4 book ai didi

ios - 从未打开的 ViewController 执行 Segue

转载 作者:行者123 更新时间:2023-11-28 14:12:46 24 4
gpt4 key购买 nike

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

当点击这些通知时,它们应该将用户引导至与通知相关的 ViewController。

我想知道是否可以从 AppDelagate 执行转场。

我的 ViewControllers 在导航 Controller 中。我猜我必须实例化我的 Root View Controller 并在那里执行 segue,只是不确定如何从 appdelegate 执行此操作。

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

 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)
}
}

最佳答案

您无法从尚未加载的 Storyboard 中继续。

根据您的情况,您可以:

1:将数据从 AppDelegate 发送到当前 Storyboard的初始 Root View Controller ,然后根据数据从那里创建多个转场到可敬的 VC。

2:创建多个 Storyboard(每个案例一个)并根据通知从 AppDelegate 启动适当的 Storyboard。

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

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

关于ios - 从未打开的 ViewController 执行 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com