2016-03-15 73 views
0

我正在使用MBProgressHUD向用戶顯示提示,但未顯示。有許多使用相同方法的viewcontrollers。只有一個頁面不能顯示它,這個視圖控制器是用xib創建的。 的方法如下:MBProgressHUD無法顯示

-(void)creatHUD:(NSString *)hud { 

    if (!HUD) { 
     HUD = [[MBProgressHUD alloc] initWithView:self.view] ; 
     [self.view addSubview:HUD]; 
     HUD.delegate = self; 
    } 
    HUD.labelText = hud; 
} 
+0

你可以把你用來顯示進度MBProgressHUD的方法的一些代碼。 –

+0

請問請爲此視圖控制器添加代碼,哪個MBProgressHUD不起作用。 –

+0

你從viewdidload提交hud嗎? –

回答

2

試試這個代碼

UIView *window = [UIApplication sharedApplication].keyWindow; 

MBProgressHUD * hud = [MBProgressHUD showHUDAddedTo:window animated:YES]; 

[hud show:YES]; 

希望這將工作...

+0

謝謝,它的工作原理 –

+0

- (void)creatHUD:(NSString *)hud {HUD} {HUD} {[MBProgressHUD alloc] initWithView:self.view]; [self.view addSubview:HUD]; HUD.delegate = self; } HUD.labelText = hud; } –

+0

你能告訴我爲什麼這個方法不能工作嗎?我真的懷疑它是相對於xib。 –

0

,因爲問題是不明確的,我覺得你是想用後臺線程來顯示。請試試這個。

dispatch_async(dispatch_get_main_queue(), ^{ 
     //show Hud code here 
    }); 
0

我用MBProgressHUD過,我的實現是:

2只顯示MBProgressHUD決不添加多個鐵漢進入視野。
我包了,這裏是我的代碼:

#define APP [UIApplication sharedApplication] 
+ (MBProgressHUD *)Hud 
{ 
    MBProgressHUD *hud = [MBProgressHUD HUDForView:APP.keyWindow]; 
    if (hud){ 
     [hud removeFromSuperview]; 
    }else{ 
     hud = [[MBProgressHUD alloc] initWithWindow:APP.keyWindow]; 
     hud.removeFromSuperViewOnHide = YES; 
    } 
    [APP.keyWindow addSubview:hud]; 
    return hud; 
} 

+ (void)showMsg:(NSString *)message 
{ 
    MBProgressHUD *hud = [self Hud]; 
    hud.labelText = message; 
    hud.mode = MBProgressHUDModeText; 
    hud.labelFont = [UIFont systemFontOfSize:13]; 
    [hud show:YES]; 
    [hud hide:YES afterDelay:1.0]; 
} 

+ (void)showLoading 
{ 
    [self showLoading:@"please wait..."]; 
} 

+ (void)showLoading:(NSString *)message 
{ 
    MBProgressHUD *hud = [self Hud]; 
    hud.labelText = message; 
    hud.mode = MBProgressHUDModeIndeterminate; 
    hud.labelFont = [UIFont systemFontOfSize:13]; 
    [hud show:YES]; 
} 

+ (void)hideHUD 
{ 
    MBProgressHUD *hud = [MBProgressHUD HUDForView:APP.keyWindow]; 
    [hud hide:YES]; 
} 
0

如果您在迅速發展試試這個

DispatchQueue.main.async { 

     MBProgressHUD.showAdded(to: UIApplication.shared.keyWindow!, animated: true) 
    }