私はこのことについて読んで読んでいるので、自分の状況に合ったものを見つけることができないようです。JSON呼び出しに時間がかかり過ぎると、ユーザーにMBProgressHUDをキャンセルさせる
ビューが表示されるときに私は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クラスに設定しますか?だから失望した...
何か助けて大変ありがとう。長いポストのために私の謝罪。そして、私の醜いコードのために...
この1つの問題は、親ビューのタッチ – Mangesh