我想设置的方法显示和取消HUD在单例。我在单例中编写了此方法:
- (void)showHUD
{
activityHud = [[MBProgressHUD alloc] init];
activityHud.delegate = self;
}但什么都没发生。因为解雇,我不知道怎么写..。任何答案都会很有帮助。谢谢!
发布于 2015-07-20 09:08:49
为什么不使用静态方法呢?我用这个把它放进我的util类。
static UIWindow *window;
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
window = [[[UIApplication sharedApplication] windows] lastObject];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;
return hud;}
然后用这个藏起来:
+ (void)dismissGlobalHUD {
[MBProgressHUD hideHUDForView:window animated:YES];
}发布于 2015-07-20 09:44:33
你可以做我做的事。我有一个基类VC,它来自我的所有viewControllers子类,并具有以下方法:
-(void)showActivityViewForView:(UIView *)view withActivityText:(NSString *)text;和
-(void)hideActivityView;执行情况如下:
-(void)showActivityViewForView:(UIView *)view withActivityText:(NSString *)text;
{
self.viewForActivity = view;
self.activitytext = text;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showActivityView) userInfo:nil repeats:NO];
}
-(void)showActivityView
{
self.progressView = [MBProgressHUD showHUDAddedTo:self.viewForActivity animated:YES];
self.progressView.opacity = 0.5;
self.progressView.labelText = self.activitytext;
}
-(void)hideActivityView
{
[self.timer invalidate];
[MBProgressHUD hideAllHUDsForView:self.view animated:YES];
}计时器在那里,所以如果我所做的网络活动完成不到一秒,我就根本不显示MBProgressHUD。
在基类中使用它意味着我的所有VC都可以轻松地访问这些方法。
https://stackoverflow.com/questions/31510755
复制相似问题