首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MBProgressHUD到Singleton

MBProgressHUD到Singleton
EN

Stack Overflow用户
提问于 2015-07-20 07:19:40
回答 2查看 272关注 0票数 0

我想设置的方法显示和取消HUD在单例。我在单例中编写了此方法:

代码语言:javascript
复制
- (void)showHUD
{
    activityHud = [[MBProgressHUD alloc] init];
    activityHud.delegate = self;
}

但什么都没发生。因为解雇,我不知道怎么写..。任何答案都会很有帮助。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 09:08:49

为什么不使用静态方法呢?我用这个把它放进我的util类。

代码语言:javascript
复制
static UIWindow *window;  
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
window = [[[UIApplication sharedApplication] windows] lastObject];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;

return hud;

}

然后用这个藏起来:

代码语言:javascript
复制
+ (void)dismissGlobalHUD {

[MBProgressHUD hideHUDForView:window animated:YES]; 
}
票数 1
EN

Stack Overflow用户

发布于 2015-07-20 09:44:33

你可以做我做的事。我有一个基类VC,它来自我的所有viewControllers子类,并具有以下方法:

代码语言:javascript
复制
-(void)showActivityViewForView:(UIView *)view withActivityText:(NSString *)text;

代码语言:javascript
复制
-(void)hideActivityView;

执行情况如下:

代码语言:javascript
复制
    -(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都可以轻松地访问这些方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31510755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档