Я обнаружил, что мой пользовательский интерфейс не отвечает при использовании MBProgress HUD, а при отладке на устройстве он показывает мне сообщение «wait_fences не удалось получить ответ». Я думаю, что неправильно использую MBProgressHUD. может кто-нибудь, пожалуйста, скажите мне, как лучше всего использовать MBProgressHUD в следующем сценарии.
if (!self.detailController) {
DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailVC.view.autoresizingMask = baseView.autoresizingMask; //(baseView Alerady added on xib for orientation purpose)
self.detailController = detailVC;
[detailVC release];
}
[self.view addSubview: self.detailController.view]; //Removing detailController.view before calling to this function.
[self.detailController makeServiceCall];
-(void)makeServiceCall
{
//HUD is class level variable
if (!HUD) {
HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
HUD.dimBackground = YES;
[self.view.window addSubview:HUD];
HUD.labelText = @"";
}
//Showing the HUD progress bar
[HUD show:YES];
//Async call code for service call, once connection end hiding the HUD.
}
-(void)parsingFinished
{
//Data handling goes here..
[HUD hide:YES];
}
Я исследовал невосприимчивость пользовательского интерфейса и обнаружил, что HUD должен отображаться в методе viewDidAppear, но я добавляю представление как подпредставление, и из-за этого viewDidAppear не вызывается.
Если я удаляю HUD из своего приложения, оно работает очень хорошо, поэтому я уверен, что приложение не отвечает из-за неправильного использования HUD. Я сделал это во многих местах моего приложения. нужно лучшее решение, которое я могу применить.