簡體   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