recuperar porcentaje poner pantalla notificaciones nombre como centro bloqueo bloqueada bateria iphone objective-c

porcentaje - recuperar notificaciones iphone



¿Cómo verificar si una vista específica de UIViewController está actualmente visible? (3)

Agregue esto a sus controladores, oa una subclase de UIViewController que luego puede subclasificar. Acceda usando una propiedad o la variable:

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; visible = YES; } - (void)viewWillDisappear:(BOOL)animated { visible = NO; [super viewWillDisappear:animated]; }

Posible duplicado:
Cómo saber si la vista de UIViewController es visible

Estoy desarrollando una aplicación que procesa un flujo constante de datos entrantes de la red y proporciona varios UIViews diferentes para que el usuario vea esos datos.

Cuando ciertos datos del modelo se actualizan en función de la corriente entrante de la red, accedo al UIViewController o UITableViewController asociado y hago -setNeedsDisplay en él (en el caso de UIViewController) o -reloadData (en el caso de UITableViewController).

¿Hay alguna forma de comprobar si actualmente se está visualizando una UIView determinada (más allá de solo cargarla) para que solo haga -setNeedsDisplay o -reloadData si el usuario está actualmente mirando esa UIView? Parecería que llamar -setNeedsDisplay o reloadData en una vista que el usuario no está mirando actualmente es una pérdida de potencia de procesamiento y no sería bueno para la duración de la batería. Cuando el usuario finalmente cambia a una vista que previamente se actualizó, hacer -setNeedsDisplay o reloadData en -viewWillAppear tendría más sentido.

Gracias


Después de investigar un poco, encontré esta respuesta en otra pregunta publicada aquí ... Esta parece ser la mejor manera ...

La propiedad de ventana de la vista no es nula si una vista está actualmente visible, entonces verifique la vista principal en el controlador de vista:

if (viewController.isViewLoaded && viewController.view.window){ // viewController is visible }


Solo para completar, pensé que agregaría cómo determinar si el controlador de vista se muestra en una aplicación basada en pestañas:

+(BOOL) isSelectedViewController:(UIViewController *)someVC; { myAppDelegate *appD = [[UIApplication sharedApplication] delegate]; UIViewController *selectedVC = [appD.TabBarController selectedViewController]; return selectedVC == someVC; }