2014-01-23 39 views
1

我正在使用MBProgressHUD,我需要在窗口上顯示它,因爲我想添加許多全屏視圖。我用文本設置HUD,當我稍後更改文本時,它不會更改文本。 HUD是單身人士課程的保留財產。當我在視圖上顯示它時,允許我這樣做。但我需要用窗戶來做。MBProgressHUD無法更改文本,如果顯示在窗口上

_HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow]; 
    [[UIApplication sharedApplication].keyWindow addSubview:_HUD]; 
    _HUD.delegate=self; 
_HUD.labelText =HUD_TEXT_LOADING; 
_HUD.detailsLabelText =HUD_TEXT_PLEASE_WAIT; 
    [_HUD show:YES]; 

這就是我如何更改文本

-(void) changeHUDText:(NSString*)text andDetailText:(NSString*) detailText 
{ 
if (_HUD) { 
    if (text) 
     _HUD.labelText=text; 

    if (detailText) 
     _HUD.detailsLabelText=detailText; 
} 
} 
+0

嘗試在viewDidLoad中初始化_HUD] – Ashutosh

+0

不能做,我有一個方法,後面的事情。 – NaXir

回答

2

你應該只添加此方法MBProgressHud的頭文件:

+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view withText:(NSString *)text; 

並執行它在.m文件如下:

+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view withText:(NSString *)text 
{ 
    MBProgressHUD *hud = [[self alloc] initWithView:view]; 
    hud.labelText = text; 
    [view addSubview:hud]; 
    [hud show:YES]; 
    return MB_AUTORELEASE(hud); 
} 

,並調用它,無論你想這樣的:

[MBProgressHUD showHUDAddedTo:self.view withText:@"Loading..."];