Ho letto e letto su SO di questo, e proprio non riesco a trovare nulla che corrisponda alla mia situazione.Consenti all'utente di annullare MBProgressHUD quando la chiamata JSON impiega troppo tempo
Ho il caricamento di MBProgressHUD quando appare la vista, dato che la mia app va immediatamente ad afferrare alcuni dati del servizio web. Il mio problema è il pulsante Indietro sul mio navigationcontroller non risponde mentre l'HUD è visualizzato (e quindi mentre l'app riceve i suoi dati). Voglio che l'utente sia in grado di toccare per chiudere (o di essere in grado di premere il pulsante indietro nel peggiore dei casi) per ottenere il colpo, se è un'attesa senza fine. Ecco il mio codice che viene eseguito non appena viene visualizzata la vista:
#ifdef __BLOCKS__
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
hud.labelText = @"Loading";
hud.dimBackground = NO;
hud.userInteractionEnabled = YES;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// Do a task in the background
NSString *strURL = @"http://WEBSERVICE_URL_HERE";
//All the usual stuff to get the data from the service in here
NSDictionary* responseDict = [json objectForKey:@"data"]; // Get the dictionary
NSArray* resultsArray = [responseDict objectForKey:@"key"];
// Hide the HUD in the main tread
dispatch_async(dispatch_get_main_queue(), ^{
for (NSDictionary* internalDict in resultsArray)
{
for (NSString *key in [internalDict allKeys])
{//Parse everything and display the results
}
}
[MBProgressHUD hideHUDForView:self.navigationController.view animated:YES];
});
});
#endif
Tralasciando tutto ciò che non ha senso sull'analisi del JSON. Funziona tutto bene e l'HUD si chiude dopo che i dati appaiono e vengono visualizzati. In che modo nel mondo posso attivare un modo per interrompere tutto questo con un tocco e tornare all'interfaccia (vuota)? GestureRecognizer? Lo avrei impostato nella classe MBProgressHUD? Così frustrato ...
Grazie mille per qualsiasi aiuto. Le mie scuse per il lungo post. E per il mio brutto codice ...
Un problema con questo, si chiama anche se genitore vista tocco – Mangesh