我在AppDelegate中使用了Web服务。但是我想在初始视图控制器(视图控制器)上显示SVProgressHUD,并且当Web服务完成时,然后在View Controller中隐藏SVProgressHUD。在ViewController上显示SVProgressHUD?
0
A
回答
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
在swift https://github.com/shubh10/JustHUD上试用这个适用于iOS的HUD库 –
相关问题
- 1. SVProgressHUD如何显示在下一个ViewController
- 2. SVProgressHUD上显示内部NSOperationQueue
- 3. SVProgressHUD无法显示状态
- 4. svprogresshud没有显示在xcode5中ios7
- 5. 活动指示器未显示SVProgressHUD
- 6. 如何在半屏上显示ViewController
- 7. 显示viewController swift
- 8. 在ViewController之外显示UIAlertController
- 9. 在ContainerView中显示ViewController
- 10. 显示ViewController错误
- 11. 不再显示ViewController
- 12. UISplitViewController显示错误的ViewController上推出
- 13. SVProgressHUD显示在背景为莫代尔视图
- 14. 如何设置和解除SVProgressHUD时移动到另一个ViewController
- 15. Dimiss SVProgressHUD
- 16. ViewController没有显示... Xcode iPhone
- 17. UIAlertView按钮来显示viewController
- 18. LaunchScreen加载后显示ViewController
- 19. UIModalPresentationStyle.PageSheet不显示ViewController内容
- 20. 从非UI类显示ViewController
- 21. 将ViewController显示为PopUpSubview?
- 22. UIActivity ViewController显示项目
- 23. 显示下一个ViewController块
- 24. 定时器,而viewController显示?
- 25. 重置后显示ViewController NSUSerDefaults
- 26. 显示另一个ViewController
- 27. 从AppDelegate显示两个ViewController
- 28. 如何在第二个ViewController中从一个ViewController显示UIImage?
- 29. 在模态显示第二个ViewController后删除ViewController
- 30. 在另一个ViewController视图中显示整个ViewController
可以显示的appdelegate –
确定没有问题的代码,调用[SVProgressHUD秀]前的API调用或解散(使用主线程)获取响应 –
后 - (无效)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驳回]; }); }); } 我用这个,但没有显示。 –