2011-08-10 49 views
0

我正在一個應用程序中使用tableview。我想實現一個加載屏幕,使用MBProgressHUD,以便在數據從互聯網上讀取之前顯示。然而,使用下面的代碼未顯示的數據的:MBProgresshud與tableview

- (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

回答

0

根據我的經驗,。 HUD在加載或等待數據加載時顯示,您應該在-viewDidAppear方法中調用HUD。我還注意到您沒有在代碼中包含[super viewDidLoad];調用如果您要呈現您的HUD,如果你希望它出現在你打電話給超級viewDidLoad之後,你將不得不打電話給它。希望這些可以幫助你。

0

我喜歡用不同的方法呈現和隱藏​​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從異步方法,計時器等e.g獨立視圖生命週期的控制,以及:

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

或類似的東西。