Как работает ссылка AppDelegate на подкласс ViewController - PullRequest
0 голосов
/ 08 мая 2018

Я использую 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, он использует эту ссылку вместо этого?

...