我已经阅读并阅读了关于此的内容,但我似乎找不到任何与我的情况相匹配的内容。
当视图出现时,我已经加载了 MBProgressHUD,因为我的应用程序会立即获取一些 Web 服务数据。我的问题是我的导航控制器上的后退按钮在显示 HUD 时没有响应(因此在应用程序获取其数据时)。我希望用户能够点击关闭(或者在最坏的情况下能够点击后退按钮)以摆脱困境,如果这是一个无休止的等待。这是我的代码在视图出现后立即运行:
#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
省略所有关于解析 JSON 的废话。这一切都很好,HUD 在数据出现并显示后消失。在世界上我怎样才能启用一种方法来停止所有这一切并返回(空白)界面?手势识别器?我会在 MBProgressHUD 类中设置它吗?好沮丧...
非常感谢您的帮助。我为这篇长文道歉。而对于我丑陋的代码......