2016-09-28 39 views
0

我在AppDelegate中使用了Web服务。但是我想在初始视图控制器(视图控制器)上显示SVProgressHUD,并且当Web服务完成时,然后在View Controller中隐藏SVProgressHUD。在ViewController上显示SVProgressHUD?

+0

可以显示的appdelegate –

+0

确定没有问题的代码,调用[SVProgressHUD秀]前的API调用或解散(使用主线程)获取响应 –

+0

后 - (无效)GetCountryList { [SVProgressHUD节目]; 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:@ “msg” 中] isEqualToString:@ “成功”]){ } [SVProgressHUD驳回]; }); }); } 我用这个,但没有显示。 –

回答

0

我理解你的需求,我的建议是套餐二 类,HUDMysevers

我这里有令牌例如:

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

在swift https://github.com/shubh10/JustHUD上试用这个适用于iOS的HUD库 –