代码之家  ›  专栏  ›  技术社区  ›  Ahmed

获取应用程序中uiviewcontroller的名称delegate swift

  •  0
  • Ahmed  · 技术社区  · 7 年前

    目前我实现的可达性是appdelegate.swift文件。这是用于确定何时连接或断开Internet的代码

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

    此代码可以很好地检测Internet是否已连接或断开。 现在,如果Internet断开连接,我想知道我当前在导航控制器中的视图控制器,我想修改该视图控制器的用户界面,通知用户Internet已断开连接。我正在尝试使用以下代码在导航中获取当前的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 回复  |  直到 7 年前
        1
  •  1
  •   Snezhana    7 年前

    如果观察者的视图在屏幕上,我建议您使用notificationcenter并向他们发送通知,以执行您想要的操作。发送通知时,让您的VCS观察员和实现选择器。

    如果您不知道如何检查视图是否在屏幕上,请检查此答案: How to tell if UIViewController's view is visible