[英]How to dismiss a viewcontroller within another ViewController?
[英]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.