目前我实现的Reachability是AppDelegate.swift文件。这是我确定何时连接或断开互联网的代码
@objc func reachabilityChanged(note: Notification) {
let reachability = note.object as! Reachability
if (reachability.connection != .none) {
}
else
{
currentView()
}
}
此代码可以正常检测互联网是连接还是断开连接。 现在,如果互联网断开,我想知道我当前在导航控制器中的哪个viewController,我想修改该viewController的UI,以通知用户互联网已断开连接。我试图使用以下代码在我的navigationStack中获取当前的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)
}
}
答案 0 :(得分:1)
我建议您使用NotificationCenter并向观察者发送通知,以便在屏幕上显示视图时执行您想要的操作。在发送通知时,让您的VC观察者和实施选择器。
如果您不知道如何检查视图是否在屏幕上,请检查此答案: How to tell if UIViewController's view is visible