![](/img/trans.png)
[英]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.