I am using AFNetworking 2.0 to monitor Reachability.
In the viewDidLoad of my main VC I have the following:
// Start monitoring the internet connection
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
// Check the reachability status and show an alert if the internet connection is not available
switch (status) {
case -1:
// AFNetworkReachabilityStatusUnknown = -1,
NSLog(@"The reachability status is Unknown");
[self reachabilityNotReachableAlert];
case 0:
// AFNetworkReachabilityStatusNotReachable = 0
NSLog(@"The reachability status is not reachable");
[self reachabilityNotReachableAlert];
case 1:
// AFNetworkReachabilityStatusReachableViaWWAN = 1
NSLog(@"The reachability status is reachable via WWAN");
case 2:
// AFNetworkReachabilityStatusReachableViaWiFi = 2
NSLog(@"The reachability status is reachable via WiFi");
break;
default:
break;
}
}];
On top of this main VC I load different view controllers/paths/navigation controllers and dismiss once they have been used.
Question
What I am trying to do is monitor the connection but only when the main VC is displayed. For example, if I load a navigation controller on top of the main VC and the connection is lost I would still get the call to the reachabilityNotReachableAlert
.
How can I only monitor when the main VC is displayed on screen, without having to run stopMonitoring
and startMonitoring
all the time?
I guess I can put the stopMonitoring
in the prepareForSegue
method and then startMonitoring
in the viewDidAppear
, is there not an easier way to do this?
break
s :) – Cystitis