Я использовал веб-службу в AppDelegate. Но я хочу показать SVProgressHUD на исходном контроллере представления (View Controller), и когда веб-служба будет завершена, скройте SVProgressHUD в контроллере представления.Показать SVProgressHUD на ViewController?
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
Попробуйте эту библиотеку HUD для iOS в быстрой https://github.com/shubh10/JustHUD –
Смежные вопросы
- 1. SVProgressHud исчезает через несколько секунд
- 2. Показать ViewController на разных раскадровки
- 3. Dimiss SVProgressHUD
- 4. SVProgressHud не отображается
- 5. iPhone - SVProgressHUD - не может появиться на UIView
- 6. svprogresshud не отображается на главном потоке
- 7. Показать родительский ViewController на вкладке Элемент из другого ViewController
- 8. Сделайте некоторые вычисления на Viewcontroller, нужно показать результат другому Viewcontroller
- 9. Показать ViewController с СИБ
- 10. Показать весь ViewController в другом представлении ViewController
- 11. Показать viewController через другой viewController, Swift
- 12. показать UIAlertController вне ViewController
- 13. Показать viewController swift
- 14. Показать или представить ViewController?
- 15. Показать ViewController в ContainerView
- 16. SVProgressHUD - отключен пользовательский интерфейс
- 17. SVProgressHUD не показывает прогресс
- 18. SVProgressHUD с запросом findObjectsInBackgroundWithBlock?
- 19. AdColony + SVProgressHUD Conflict
- 20. Показать сообщение пользователя на новом ViewController
- 21. Показать Modal ViewController в PageViewController
- 22. MvvmCross: показать встроенный iOS ViewController
- 23. Показать ViewController и увольняет первого
- 24. Показать один ViewController внутри другого
- 25. Показать два ViewController из AppDelegate
- 26. Показать следующий ViewController в блоке
- 27. Показать ViewController из внутреннего плагина
- 28. SVProgressHUD уволить в видуWillDisappear OK?
- 29. Как применить SVProgressHUD в UIWebView?
- 30. SVProgressHUD iOS8 Заменить круг анимацией
Вы можете показать код appdelegate –
Хорошо, не проблема, вызовите [SVProgressHUD show]; перед вызовом API и увольнением (используйте основной поток) после получения ответа –
- (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 отклонять]; }); }); } Я использовал это, но не показывал. –