MBProgressHUD скрыть от другого класса - PullRequest
1 голос
/ 26 августа 2011

У меня есть класс, который обрабатывает запрос к веб-сервису. Когда это начинает получать информацию из сервиса, я создаю и добавляю HUD в другое представление класса. Вот так

HUD = [[MBProgressHUD showHUDAddedTo:viewController.view animated:YES] retain];

Когда загрузка закончится, я называю это

[HUD hideHUDForView:viewController.view animated:YES];

Я установил делегата на себя,

HUD.delegate = self;

Но я не могу заставить его убрать из поля зрения.

- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
HUD = nil;
}

Я хочу начать в одном классе, чтобы показывать в другом, пока первый выбирает данные из веб-службы. Тогда спрячь меня от первого класса.

Есть идеи?

EDIT:

Хорошо, теперь я установил делегату в первом классе:

HUD.delegate = viewController;

Но куда мне положить:

- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
HUD = nil;
}

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Вы можете сделать это, установив делегат вашего HUD в другой класс.

Например, если я добавляю HUD в класс A и хочу удалить его из класса B, тогда я должен установить делегат HUDв класс Б.

0 голосов
/ 06 мая 2015

Вы можете использовать блок завершения после первого вызова и продолжить свой путь после получения ответа от веб-службы, чтобы скрыть HUD в блоке.

Что-то длинное в строках:

[self callServiceWithBlock:^(NSError *error){

//Your service has answered, you can now hide the HUD

    [hud HIDE:YES];
    if (error){
        NSLog(@"Error : %@");
    }


}];
...