Czytałem i czytałem na ten temat SO, a ja po prostu nie mogę znaleźć niczego, co pasuje do mojej sytuacji.Zezwalaj użytkownikowi na anulowanie MBProgressHUD, gdy wywołanie JSON trwa zbyt długo
Mam MBProgressHUD ładowanie, gdy pojawia się widok, jak moja aplikacja od razu idzie pobrać niektóre dane usługi. Mój problem polega na tym, że przycisk wstecz na moim nawigatorze nie odpowiada, gdy wyświetlany jest HUD (a zatem, gdy aplikacja pobiera swoje dane). Chcę, aby użytkownik był w stanie dotknąć, aby odrzucić (lub aby móc nacisnąć przycisk powrotu w najgorszym przypadku), aby uzyskać do cholery, jeśli to niekończące się oczekiwanie. Oto mój kod, który działa, gdy tylko pojawi się widok:
#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
Zostawiając cały bełkot o analizie JSON. To wszystko działa dobrze, a HUD odrzuca po wyświetleniu danych i zostanie wyświetlony. Jak w świecie mogę włączyć sposób, aby zatrzymać to wszystko po dotknięciu i wrócić do (pustego) interfejsu? GestureRecognizer? Czy ustawić to w klasie MBProgressHUD? Tak sfrustrowany ...
Najszczersze dzięki za pomoc. Przepraszam za długi post. I dla mojego brzydkiego kodu ...
Jeden problem z tym, to również zadzwoń, jeśli nadrzędny widok dotykowy – Mangesh