繁体   English   中英

如何为另一个 ViewController 关闭 PopViewController

[英]How to dismiss PopViewController for another ViewController

我正在使用 ashleymills/Reachability 来检查用户是否连接到互联网,如果没有,我想显示一个弹出窗口,如果有互联网连接,我希望弹出窗口消失。 第一部分很简单,我能够做到,但是当有互联网连接时我无法关闭弹出窗口

主要观点:

 func checkConnection() {
        let VC = self.getStoryBoard().instantiateViewController(withIdentifier: "checkConnection") as! checkConnection
        VC.checkConnectivity = self
        self.showPopUp(VC, parent: self)
    }
       func isConnect(){
     let VC = self.getStoryBoard().instantiateViewController(withIdentifier: "checkConnection") as! checkConnection
    VC.checknotConnectivity = self
    VC.dismissVC()
}

    @objc func reachabilityChanged(note: Notification) {
        let reachability = note.object as! Reachability
        switch reachability.connection {
        case .wifi:
           isConnect()
        case .cellular:
            isConnect()
        case .none:
         checkConnection()
        }
    }

弹出视图

var checkConnectivity : checkConnectivity?
 func dismissVC() {
       // self.dismiss(animated: false, completion: nil)
        print("dismissVC")
    }

protocol checkConnectivity {
    func isConnect()
    func checkConnection()
}

我可以在调试器中看到打印,这意味着我的代码正在被读取,但不会关闭。

这是因为您在checkConnection方法中初始化控制器并弹出,但在isConnect方法中您再次初始化控制器,该控制器正在制作同一控制器的不同实例,因此之前初始化的控制器不会被解除。

尝试将 checkConnection 方法中的控制器设为全局,并在isConnect方法中关闭该控制器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM