NetworkActivityIndicator no funciona igual en el iPhone y el simulador?
-
26-09-2019 - |
Pregunta
Estoy utilizando el NetworkActivityIndicator para demostrar que mi aplicación está haciendo un trabajo. Cuando ejecuto la aplicación en el simulador, se muestra la forma en que quiero - básicamente girar todo el tiempo hasta que las cargas pestaña seleccionada los datos desde el servidor - pero cuando pongo la aplicación en mi teléfono, lo único que consigue una fracción de segundo de la ruleta antes de que desaparezca. Por lo general, sólo se gira a la derecha antes de que aparezca Ver en la pantalla.
Las ideas?
Edit: El problema podría tener que ver con el hecho de que estoy usando un TabBar ... En el simulador de la ActivityIndicator hará girar en la pantalla / Tab 1, mientras que la pantalla / Tab 2 se está cargando. En el teléfono, solamente veo el ActivityIndicator para una fracción de segundo después de la pantalla 2 aparece finalmente.
-(void)viewDidLoad {
// call to spinTheSpinner
[NSThread detachNewThreadSelector:@selector(spinTheSpinner) toTarget:self withObject:nil];
// method to Get the Data from the Server
[self getDataFromServer];
}
-(void)spinTheSpinner {
NSLog(@"Spin The Spinner");
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[self performSelectorOnMainThread:@selector(doneSpinning) withObject:nil waitUntilDone:YES];
[pool release];
}
-(void)doneSpinning {
NSLog(@"done spinning");
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
-(void)getDataFromServer {
// does a bunch of stuff to retrieve and display data
}
Solución
Se enciende el spinner aquí ...
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
Pero de inmediato que lo apaga ...
[self performSelectorOnMainThread:@selector(doneSpinning) …];
Por supuesto que no se mostrará. Me sorprende que muestra en el simulador.
El método -doneSpinning
debe ser llamado después -getDataFromServer
se hace, o simplemente hacer
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES;
[self getDataFromServer]; // assumes it is blocking.
app.networkActivityIndicatorVisible = NO;