我正在使用Swift 4,我想知道如何在AppDelegate中引用ViewController。我有两个问题,我用粗体。我知道AppDelegate是一个委托,它具有在应用程序变为前景或后台时被调用的函数,或者甚至当用户执行"打开时使用"在我的应用程序注册处理的文件扩展名上的事件,并选择使用我的应用程序打开该文件 - AppDelegate让应用程序知道发生了什么。 1)但我不明白AppDelegate应如何与我的观点沟通,告诉他们这些事件发生了。我想知道这样做的好设计模式是什么。我的解决方案是引用一个viewController,所以这是一个例子:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var hotSpotRISViewController = HotSpotRISViewController()
...
func application(_ app: UIApplication, open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
hotSpotRISViewController.setURL(theURL: url)
return true
}
}
我不明白这实际上是如何运作的。我认为AppDelegate查看Main.storyboard并启动它,并且Main.storyboard拥有它自己对HotSpotRISViewController()的引用。 2)通过在AppDelegate中引用HotSpotRISViewController(),它是如何使用此引用的呢?