Monitoreo de accesibilidad con AFNetworking solo en un controller presentado

Estoy usando AFNetworking 2.0 para monitorear la accesibilidad.

En viewDidLoad de mi VC principal tengo lo siguiente:

// Start monitoring the internet connection [[AFNetworkReachabilityManager shanetworkingManager] startMonitoring]; [[AFNetworkReachabilityManager shanetworkingManager] 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; } }]; 

En la parte superior de este VC principal, carga diferentes controlleres de vista / routes / controlleres de navigation y descartes una vez que se han utilizado.

Pregunta Lo que trato de hacer es controlar la connection pero solo cuando se muestra el VC principal. Por ejemplo, si cargo un controller de navigation en la parte superior del VC principal y se pierde la connection, seguiría recibiendo la llamada a reachabilityNotReachableAlert .

¿Cómo puedo solo monitorear cuándo se muestra el VC principal en la pantalla, sin tener que ejecutar stopMonitoring y startMonitoring todo el time?

Creo que puedo poner stopMonitoring en el método prepareForSegue y luego startMonitoring en viewDidAppear , ¿no hay una forma más fácil de hacerlo?

Lamentablemente no, no hay una forma más fácil de hacerlo.

Sin embargo, el plan que mencionaste no suena tan mal. Lo que básicamente le estás pidiendo al administrador es activar y desactivar las notifications, y necesita que le digas cuándo hacerlo.

Así es como lo hago:

 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [manager startMonitoring]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [manager stopMonitoring]; }