2015-05-04 101 views
1

我已經創建了一個類別類。由於我的應用程序主要用於API調用。所以我已經使用MBProgressHUD來顯示加載指標,而我的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與我試圖隱藏它的地方不同。我不知道如何處理它。

我第一次使用類別,所以沒有深入的瞭解它。

任何人都可以幫助我嗎? 在此先感謝!

回答

2

與如下所述的UIView的參數創建自定義類(NSObject的子類)與一類方法。

下面兩種方法(在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類別中,下面將只有兩種方法。這些方法將有助於顯示視圖控制器使用類別中的進度hud。

UIViewController類別的方法。

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

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

請試試以上方法。希望這可以幫助。 祝您好運!