2011-08-10 6 views
0

私はテーブルビューでアプリケーションを作成しています。私は、データがインターネットから読み込まれる前に表示されるように、MBProgressHUDを使用して読み込み画面を実装したいと思います。しかし、データの次のコードを使用して示されていない:。MBProgresshud with 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]; 


} 

データがなく、HUDと、単独の関数LOAD_DATA(すなわち[自己LOAD_DATA]を使用してテーブルビューに表示することができます

答えて

0

を私の経験では、使用している場合データの読み込みや読み込み中にHUDを表示するには、-viewDidAppearメソッドでHUDを呼び出す必要があります。また、あなたのコードに[super viewDidLoad];呼び出しを含めなかったことに気付きました。 HUDを表示するには、super 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は、独立して、ビューのライフサイクルの制御することを可能にするだけでなく、非同期メソッドから、タイマーなど例えば:

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

またはそのような何か。

関連する問題