import Network
private func internetConnectivity() {
let monitor = NWPathMonitor()
monitor.pathUpdateHandler = { path in
if path.status == .satisfied {
DispatchQueue.main.async {
NotificationCenter.default.post(name: .internetStatus, object: true)
}
} else {
DispatchQueue.main.async {
NotificationCenter.default.post(name: .internetStatus, object: false)
}
}
}
// print(path.isExpensive)
let queue = DispatchQueue(label: "Monitor")
monitor.start(queue: queue)
}
// Код для класса
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(internetStatus), name: .internetStatus, object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
NotificationCenter.default.removeObserver(self, name: .internetStatus, object: nil)
}
@objc private func internetStatus(_ notification: Notification? = nil) {
if let status = notification?.object as? Bool {
if !status {
self.performSegue(withIdentifier: "toNoInternet", sender: nil)
}
}
}
// Расширение
extension Notification.Name {
static let internetStatus = Notification.Name("internetStatus")
}