MBProgressHUD无法使用类别

时间:2015-05-04 09:59:13

标签: objective-c api ios8 mbprogresshud

我创建了一个类别类。因为我的应用程序主要用于API调用。所以我在使用API​​加载时使用了MBProgressHUD来显示加载指示符。

-(void)loading {
    MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.view];
    [self.view addSubview:HUD];
    HUD.color = [UIColor colorWithRed:79.0/255.0 green:79.0/255.0 blue:79.0/255.0 alpha:1.0];
    [HUD show:YES];
}

和结果我写了,

[HUD hide:YES];

但是,我需要在每个文件中编写上面的代码。所以我认为类别是减少代码重复的最佳方法。如果我把加载方法放在类别中,那么我只需用

调用它
[self loading];

结果我的HUD没有隐藏。我知道HUD的创建存在冲突。 因为在类别文件中创建的HUD与我尝试隐藏它的位置不同。我不知道如何处理它。

我第一次使用类别,所以没有深入了解它。

任何人都可以帮助我吗? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

创建一个自定义类( NSObject 子类),其类参数为 UIView ,描述为下方。

以下是两种方法(在ProgressHUD的新自定义类中),这将有助于您在 UIViewController MBProgressHUD > 类别。

+(void)showLoading:(UIView *)onView
{
    HUD = [[MBProgressHUD alloc] initWithView:onView];
    [onView addSubview:HUD];
    HUD.color = [UIColor colorWithRed:79.0/255.0 green:79.0/255.0 blue:79.0/255.0 alpha:1.0];
    [HUD show:YES];
}

+(void)hideView
{
    [HUD hide:YES];
}

现在创建一个 UIViewController 类别,其中下面只有两种方法。这些方法将有助于使用类别显示视图控制器中的进度。

UIViewController 类别方法。

-(void)showProgressHUD
{
    [MBProgressHUDCustom showLoading:self.view];
}

-(void)hideProgressHUD
{
    [MBProgressHUDCustom hideView];
}

请尝试以上方式。希望这可以帮助。 祝你好运!!!