MBProgresshud用的tableview(MBProgresshud with tablev

2019-10-28 08:23发布

我正在用它的tableview一个应用程序。 我想实现加载屏幕,使用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];


}

该数据可在tableview中使用函数load_data单独(即[自load_data]示出的,但不与HUD。

Answer 1:

根据我的经验,使用HUD显示在装载或等待加载数据的时候,你应该调用HUD在-viewDidAppear方法。 我还注意到,您不包括[超级viewDidLoad中] 调用你的代码。 如果你要出示您的HUD,你将不得不调用它,如果你希望它出现在你的超级viewDidLoad中调用后。 希望这些帮助你。



Answer 2:

我喜欢用不同的方法,只有这样做,呈现和隐藏​​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];
}

或类似的东西。



文章来源: MBProgresshud with tableview