2016-09-28 2 views
0

Я использовал веб-службу в AppDelegate. Но я хочу показать SVProgressHUD на исходном контроллере представления (View Controller), и когда веб-служба будет завершена, скройте SVProgressHUD в контроллере представления.Показать SVProgressHUD на ViewController?

+0

Вы можете показать код appdelegate –

+0

Хорошо, не проблема, вызовите [SVProgressHUD show]; перед вызовом API и увольнением (используйте основной поток) после получения ответа –

+0

- (void) GetCountryList { [SVProgressHUD show]; dispatch_async (dispatch_get_main_queue(),^{ [SVProgressHUD шоу]; NSString * urlString = [NSString stringWithFormat: @ "% @% @", BaseUrl, Service_ListOfCountry]; NSDictionary * dicCountry = [WebServiceHelper GetDataFromServer: urlString]; dispatch_async (dispatch_get_main_queue()^{ [SVProgressHUD шоу]; если ([[dicCountry valueForKey: @ "сообщение"] isEqualToString: @ "успех"]) { } [SVProgressHUD отклонять]; }); }); } Я использовал это, но не показывал. –

ответ

0

Я понимаю ваше требование, мое предложение упаковать два класса, HUD и Mysevers:

У меня есть лексемы пример здесь:

HUD.m:

#import "HUD.h" 
#import <UIKit/UIKit.h> 
#import "MBProgressHUD.h" 

@implementation HUD 


+(void)addHUD 
{ 
    MBProgressHUD* HUD = [[MBProgressHUD alloc]initWithFrame:CGRectMake(0, 0, IPHONE_WIDTH, IPHONE_HEIGHT)]; 

    HUD.tag = 5000; 
    HUD.labelText = @"正在加载"; 

    [WINDOW addSubview:HUD]; 
    [HUD show:YES]; 
} 

+(void)removeHUD 
{ 
    MBProgressHUD* HUD = (MBProgressHUD*)[WINDOW viewWithTag:5000]; 
    [HUD removeFromSuperview]; 

    HUD = nil; 

} 

@end 

Mysevers.m:

#import "Mysevers.h" 
#import "AFNetworking.h" 
#import "HUD.h" 

@implementation Mysevers 

+(void)AFPOSTAddressname:(NSString*)addressName parmas:(NSDictionary*)parmas RequestSuccess:(void(^)(id result))success failBlcok:(void(^)(void))failBlcok{ 

[HUD addHUD]; 
    AFHTTPSessionManager *requestManager = [AFHTTPSessionManager manager]; 

    NSString *urlStr = [NSString stringWithFormat:@"%@%@",BASE_URL,addressName]; 
    NSLog(@"%@",urlStr); 

/*[requestManager POST:urlStr parameters:parmas success:^(NSURLSessionTask *task, id responseObject) { 
    [HUD removeHUD]; 
    success(responseObject); 
} failure:^(NSURLSessionTask *operation, NSError *error) { 
    NSLog(@"error==%@",[error localizedDescription]); 
    [HUD removeHUD]; 
    failBlcok(); 
}];*/ 

[requestManager POST:urlStr parameters:parmas progress:^(NSProgress * _Nonnull uploadProgress) { 

} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
    [HUD removeHUD]; 
    success(responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 

    if (error != nil) { 
     NSLog(@"error==%@",[error localizedDescription]); 
     [HUD removeHUD]; 
     failBlcok(); 
    } 


    return ; 
}]; 


} 


    +(void)AFGETAddressname:(NSString*)addressName parmas:(NSDictionary*)parmas RequestSuccess:(void(^)(id result))success failBlcok:(void(^)(void))failBlcok{ 
    [HUD addHUD]; 
    AFHTTPSessionManager *requestManager = [AFHTTPSessionManager manager]; 

    NSString *urlStr = [NSString stringWithFormat:@"%@%@",BASE_URL,addressName]; 

NSLog(@"%@",urlStr); 


/*[requestManager GET:urlStr parameters:parmas success:^(NSURLSessionTask *task, id responseObject) { 

    [HUD removeHUD]; 
    success(responseObject); 
} failure:^(NSURLSessionTask *operation, NSError *error) { 
    NSLog(@"error==%@",[error localizedDescription]); 

    [HUD removeHUD]; 
    failBlcok(); 
}];*/ 

[requestManager GET:urlStr parameters:parmas progress:^(NSProgress * _Nonnull downloadProgress) { 

} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
    [HUD removeHUD]; 
    success(responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
    NSLog(@"error==%@",[error localizedDescription]); 

    [HUD removeHUD]; 
    failBlcok(); 
}]; 



} 
@end 

ИСПОЛЬЗОВАНИЕ

Вы можете пройти тест в проекте:

[Mysevers AFPOSTAddressname:url parmas:params RequestSuccess:^(id result) { 
    // code here 
} 

Надежда это может помочь вам, это мой experience.And, если вы хотите использовать SVProgressHUD, вы также можете заменить MBProgressHUD ,

+0

Попробуйте эту библиотеку HUD для iOS в быстрой https://github.com/shubh10/JustHUD –

Смежные вопросы