Проверка статуса MBProgressHUD, если он скрывает/показывает

Я показываю некоторые представления, webVies, и пока они загружаются, я показываю ProgressHud с ожидающим сообщением. Я использую экземпляр этого объекта:

MBProgressHUD * progrssHUD

Использование методов show и hide для управления загрузкой окон. В некоторых представлениях я хотел бы добавить представление только после включения метода hide, что означает, что теперь окно не отображается.

Как я могу проверить из любого интерфейса, что это за статус MBProgressHUD и только после статуса X что-то делать?


person vadim    schedule 01.10.2012    source источник


Ответы (2)


Если вы увидите реализацию MBProgresshud, то обнаружите, что когда они ее скрывают, они устанавливают ее альфа-0, а когда они показывают ее, они устанавливают ее альфа-1.

Таким образом, вы можете использовать это свойство, чтобы проверить, скрыто оно или показано. то есть

if(progrssHUD.apha == 0){
  //perform hide operation
}else{
  //Perform show operation
}
person Sunil Pandey    schedule 01.10.2012
comment
Но как я могу подключиться к этому общему экземпляру? если я использую MBProgressHUB *HUB = [MBProgressHUB alloc];, а затем проверяю HUB.alpha, это всегда 0, даже когда progressHub скрыто. - person vadim; 01.10.2012
comment
я не понимаю тебя. Если progressHud скрыт, то его альфа-значение будет равно 0, а если он отображается, он даст вам 1. - person Sunil Pandey; 01.10.2012
comment
да, но я звоню из одного класса, и теперь я хочу проверить его глобальный статус (alpha) из другого класса.. поэтому, если я проверю код выше, я всегда получаю 0, возможно, проблема в том, что я не синхронизируюсь с глобальный экземпляр этого progressHUD? - person vadim; 01.10.2012

-(IBAction)SHOW{
    HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
    [self.navigationController.view addSubview:HUD];
     HUD.delegate = self;
    [HUD show:YES];
    // Show the HUD while the provided method executes in a new thread
    [HUD showWhileExecuting:@selector(showHUD) onTarget:self withObject:nil animated:YES];
      }

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

МЕТОД showWhileExecuting ВЫЗОВ HUD БЫЛ АКТИВЕН, ПОКА МЕТОД ДЕЛЕГАТА ПРИДЕТ.

person iPC    schedule 01.10.2012