我为应用创建了通用链接。效果很好。它将打开应用程序并转到定义的视图控制器,并显示通过通用链接传递的正确信息。问题在于视图控制器具有导航控制器。但是当我直接从appdelegate访问时,它没有显示此导航控制器。
我如何在AppDelegate中定义当前内容以显示带有导航控制器的视图控制器?
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "AnuncioV2ViewController") as? AnuncioV2ViewController {
if let window = self.window, let rootViewController = window.rootViewController {
var currentController = rootViewController
while let presentedController = currentController.presentedViewController {
currentController = presentedController
}
controller.idAd = adID
controller.id_usuario = self.userID
controller.anuncio = anuncio as! [String:Any]
DispatchQueue.main.async {
currentController.present(controller, animated: true, completion: nil)
}
}
}
答案 0 :(得分:0)
除非AnuncioV2ViewController
是UINavigationController
的子类,否则您实际上就是在省略一个步骤。如果所有内容都已在您的情节提要中正确设置,则只需为父导航控制器提供一个标识符,然后实例化该标识符即可。然后,您可以使用AnuncioV2ViewController
访问navigationController.children.first! as! AnuncioV2ViewController
实例。 (如果这在您的情节提要中,并且至少可以正常工作一次,那么在黄金时段,这些强制展开应该没问题。)