因此,我有一个应用程序使用了deeplink参数,然后应该发生的事情是该deeplink参数应转到特定的视图控制器。由于某种原因,我无法使用该视图控制器。所以这是应用程序的设计(->标签栏控制器->导航控制器->仪表板VC->设置到->通知VC)所以基本上,一旦我进入仪表板VC,我就想设置到通知VC全部来自应用程序委托。
var rootViewController = self.window!.rootViewController as! UITabBarController
rootViewController.selectedIndex = 0
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "MainVC") as! MainViewController
controller.performSegue(withIdentifier: "showChat", sender: controller)
此操作的结果是选项卡栏转到导航栏所在的位置,但此后什么也没有发生。我真的很困惑,这将对显示我在做错的事情大有帮助。谢谢您的帮助。
答案 0 :(得分:0)
您可能想看一下协调器模式。 https://github.com/AndreyPanov/ApplicationCoordinator您可以在Google上搜索与此相关的更多材料。另外,还有其他方法,例如使用NSNotificationCenter,但是协调器模式是一种趋势方法,并且长期安全和可维护。
添加:
要打开使用情节提要的任何VC,我们需要在情节提要文件中配置从源vc到目标vc的segue。因此,您可以选择一些方法,但不包括某些黑客技巧:1)在每个需要打开该通知VC的情节提要中,在情节提要中配置segue。 2)不要使用情节提要。使用UIViewController.present(_:animated:completion:)来显示通知视图控制器。
听起来通知VC是一个常见的视图控制器,可以在任何给定的时间点显示。如果确实如此,则只能使用根视图控制器来打开通知VC。它会出现在所有其他内容和模态视图控制器的顶部。