You can use the Reachability framework. Install it through CocoaPods
with pod 'ReachabilitySwift', '~> 3'
.
To use it:
Declare a global variable:
var reachability = Reachability()!
Add an observer and start the notifier in your viewWillAppear
:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
NotificationCenter.default.addObserver(self, selector: #selector(self.reachabilityChanged),name: ReachabilityChangedNotification,object: reachability)
do{
try reachability.startNotifier()
}catch{
print("could not start reachability notifier")
}
}
Add a function to detect changes in the network:
func reachabilityChanged(note: NSNotification) {
reachability = note.object as! Reachability
if !reachability.isReachable {
// Network not reachable
}
else{
if reachability.isReachableViaWiFi {
// Reachable via WiFi
} else {
// Reachable via Cellular
}
}
}