Repository for project of Medium Blog Network reachability status monitoring on iOS (Part 2)
- Install ReachibilitySwift with
pod ‘ReachabilitySwift’, ‘~> 3’withcocoapods - Drag and Drop
ReachabilityManager.swiftto your project from...NetworkStatusMonitorPart1/NetworkStatusMonitor/Networking/Core
Override AppDelegate's func applicationDidBecomeActive(_:)
func applicationDidBecomeActive(_ application:UIApplication){
// Starts monitoring network reachability status changes
ReachabilityManager.shared.startMonitoring()}Override AppDelegate's func applicationWillEnterForeground(_:)
func applicationWillEnterForeground(_ application:UIApplication){
// Stops monitoring network reachability status changes
ReachabilityManager.shared.stopMonitoring()}1. Implement `NetworkStatusListener` in `ViewController` class
extensionViewController:NetworkStatusListener{func networkStatusDidChange(status:Reachability.NetworkStatus){switch status {case.notReachable:debugPrint("ViewController: Network became unreachable")case.reachableViaWiFi:debugPrint("ViewController: Network reachable through WiFi")case.reachableViaWWAN:debugPrint("ViewController: Network reachable through Cellular Data")}
// Take necessary actions here
}}2. Override `viewWillAppear(_:)` and `viewDidDisappear(_:)`
overridefunc viewWillAppear(_ animated:Bool){
super.viewWillAppear(animated)ReachabilityManager.shared.addListener(listener:self)}overridefunc viewDidDisappear(_ animated:Bool){
super.viewDidDisappear(animated)ReachabilityManager.shared.removeListener(listener:self)}