MBProgresshud с видом на стол - PullRequest
       3

MBProgresshud с видом на стол

0 голосов
/ 10 августа 2011

Я подаю заявку с табличным представлением.Я хотел бы реализовать загрузочный экран, используя MBProgressHUD, чтобы он отображался до того, как данные будут прочитаны из Интернета.Однако данные не отображаются с использованием следующего кода:

- (void)viewDidLoad
{

HUD = [[MBProgressHUDalloc] initWithView:self.view];

[self.viewaddSubview:HUD];
HUD.delegate = self;



[HUD showWhileExecuting:@selector(load_data) onTarget:self withObject:nil animated:YES];


}

данные могут отображаться в виде таблицы с использованием только функции load_data (то есть [self load_data], но не с помощью HUD.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Мне нравится представлять и скрывать HUD с помощью отдельных методов, которые только делают это. например,

#pragma mark - The HUD

-(void)showHudWithText:(NSString *)text {   
   if (self.hud == nil) {
      self.hud = [[[MBProgressHUD alloc] initWithWindow:self.window] autorelease];
      [self.window addSubview:hud];
   }

   [self.hud setLabelText:text];
   [self.hud setMode:MBProgressHUDModeIndeterminate];
   [self.hud show:YES];
}

-(void)hideHud {
   [self.hud hide:YES];
}

Это позволяет управлять HUD независимо от жизненного цикла представления, а также от асинхронных методов, таймеров и т. Д., Например:

-(void)viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showHudWithText:) name:kSomethingImportantStartedNotification object:@"Starting..."];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideHud) name:kSomethingImportantEndedNotification object:nil];
}

Или что-то в этом роде.

0 голосов
/ 05 января 2012

По моему опыту, при использовании HUD для отображения во время загрузки или ожидания загрузки данных вы должны вызывать HUD в методе -viewDidAppear. Я также заметил, что вы не включили [super viewDidLoad]; позвоните в свой код. Если вы собираетесь представить свой HUD, вам нужно будет вызвать его после вызова супер viewDidLoad, если вы хотите, чтобы он появился. Надеюсь, это поможет вам.

...