AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

Hola, estoy intentando poner un Activity indicator. Lo que quiero es que se muestre y gire en un momento determinado (cuando accede a una url), el caso es que cuando hago click en el boton mi metodo ejecuta (el poner visible el indicador) y la line siguiente llamar a la url json.

El caso es que das al boton se queda parado sin salir el indicador... y cuando ya accede a la otra vista (porque es login) es cuando se ve que empieza a girar, pero en realidad ahi ya no me interesa que muestre que está haciendo algo... .

es necesario multi hilo? como se hace?.

Gracias

preguntado 13 Abr '12, 10:47

jlillop's gravatar image

jlillop
168406682

cerró 25 Abr '12, 10:38

La pregunta ha sido cerrado por el siguiente motivo "La pregunta esta respondida, con respuesta aceptada." por La pregunta ha sido cerrado por la siguiente razón "La pregunta esta respondida, con respuesta aceptada." by jlillop 25 Abr '12, 10:38


Yo tenia el mismo problema que tu, y me era tedioso cambiar a asíncrona todas mis conexiones así que hice esto:

digamos que haces click en un botón para ir a la url json:

- (IBAction)irOpcion:(id)sender{

        [Activity startAnimating]; // inicias tu activity Indicator
        self.aTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(AccederOpcion:) userInfo:nil repeats:NO]; // haces un timer

 }

-(void)AccederOpcion:(NSTimer *) theTimer{

     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

     /Acá dentro desactivas tu Activity Indicator y pones tu método que llama a tu url json

     [pool drain];
}

saludos.

enlace permanente

respondido 20 Abr '12, 16:06

Dunkelheit's gravatar image

Dunkelheit
209192532

editó 20 Abr '12, 16:06

tengo que pasarle tambien el indexpath, como lo hago?

(23 Abr '12, 16:03) jlillop

podrias agregarle el valor a una global

(23 Abr '12, 18:40) Dunkelheit

Eso ocurre porque estas haciendo la consulta de la url de manera síncrona. Debes hacerlo de manera asíncrona. Si no pones nada de código poco más se te puede decir.

enlace permanente

respondido 13 Abr '12, 10:56

ManueGE's gravatar image

ManueGE
3.1k284260

Esto seria un ejemplo:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    actividad.hidden=FALSE;  <-- Este es el Activity indicator

    NSURL *urlJSON = [NSURL URLWithString:[NSString stringWithFormat:@"https://....]];

    NSData *data = [[NSData alloc] initWithContentsOfURL:urlJSON ];
    NSString *datos_string;
    datos_string= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    if ([[segue identifier] isEqualToString:@"NuevoUsuario"]) {
        [segue destinationViewController];
         actividad.hidden=TRUE;
    }
enlace permanente

respondido 13 Abr '12, 11:28

jlillop's gravatar image

jlillop
168406682

editó 13 Abr '12, 11:58

ManueGE's gravatar image

ManueGE
3.1k284260

Para hacer lo que yo te digo tienes que trabajar con NSURLConnection, que no es especialmente complicado en este caso. No se si habrá otra forma de hacerlo más sencilla.

(13 Abr '12, 11:57) ManueGE

he intentado usarlo y no lo logro, alguien sabe alguna otra solucion? Es muy importante para mi que muestre que esta cargando para evitar hacer pensar que está bloqueado... Gracias

(19 Abr '12, 16:36) jlillop
1

Hola,

La solución que te da ManueGE es buena.. no obstante si no lo consigues puedes intentarlo con UIAlertview. (es lo mas sencillo que se me ocurre)

Ejemplos: http://iphonedevelopertips.com/user-interface/uialertview-without-buttons-please-wait-dialog.html http://www.box-of-monkeys.co.uk/index.php?id=29&tp=2&tag=iPhone

http://blog.coriolis.ch/2008/11/09/add-an-uiprogressview-or-uiactivityindicatorview-to-your-uialertview/

Espero que te pueda servir! Saludos

(21 Abr '12, 18:38) Mark

Sobre esta pregunta

Etiquetas de la pregunta:

×2
×2
×2

Pregunta realizada el: 13 Abr '12, 10:47

Pregunta visitada: 474 veces

Última modificación: 25 Abr '12, 10:38

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación