Я использую Swift 4, и мне интересно, как работает ссылка на ViewController в AppDelegate. У меня есть два вопроса, которые я выделил жирным шрифтом. Я понимаю, что 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) Как, ссылаясь на HotSpotRISViewController () в AppDelegate, он использует эту ссылку вместо этого?