Получение имени UIVIewController в приложении делегат swift - PullRequest
0 голосов
/ 29 мая 2018

В настоящее время я реализовал файл Reachability is AppDelegate.swift.Это мой код, чтобы определить, когда я подключаюсь к Интернету или отключаюсь от него

@objc func reachabilityChanged(note: Notification) {
    let reachability = note.object as! Reachability
    if (reachability.connection != .none) {
    }
    else
    {
        currentView()
    }

}

Этот код отлично работает, чтобы определить, подключен ли Интернет или отключен.Теперь, если Интернет отключен, я хочу знать, какой viewController находится у меня в моем навигационном контроллере, и я хотел бы изменить пользовательский интерфейс этого viewController, чтобы уведомить пользователя о том, что Интернет отключен.Я пытаюсь получить текущий viewController в моем навигационном стеке, используя следующий код, но он не работает

if let window = UIApplication.shared.delegate?.window {
    if var viewController = window?.rootViewController {
        // handle navigation controllers
        if(viewController is UINavigationController){
            viewController = (viewController as! UINavigationController).visibleViewController!
        }
        print (viewController)
    }
}

1 Ответ

0 голосов
/ 29 мая 2018

Я бы посоветовал вам использовать NotificationCenter и отправлять уведомления наблюдателям, чтобы они делали то, что вы хотите, если их вид отображается на экране.Сделайте ваши VC наблюдателями и внедрите селекторы при отправке уведомления.

Проверьте этот ответ, если вы не знаете, как проверить, отображается ли представление на экране: Как определить, является ли представление UIViewController видимым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...