我正在使用MBProgressHUD,我需要在窗口上显示它,因为我想添加许多全屏视图。我用文本设置HUD,当我稍后更改文本时,它不会更改文本。 HUD是单身类的保留属性。当我在视图中显示它时,它允许我这样做。但我需要用窗户来做。
_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 :(得分: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..."];