MBProgressHud, AFnetworking и обновление данных
Я использую AFnetworking, чтобы позвонить на сервер. При загрузке я использую MBProgressHUD, чтобы показать, что данные загружаются. Пока все отлично работает. Моя проблема, когда я нажимаю кнопку "Домой", а затем перезапустить приложение. Я хотел бы, чтобы страница автоматически обновлялась, а MBProgressHUD отображал пользователю, что что-то загружается. Это я не могу сделать. Я могу загрузить данные, но не могу заставить работать часть HUD.
Во-первых, в методе viewDidLoad я добавляю это:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidBecomeActiveNotificationAction)
name:UIApplicationDidBecomeActiveNotification
object:nil];
Теперь в методе applicationDidBecomeActiveNotificationAction
, Я звоню [self downloadWebsites]
,
В методе downloadWebsites
где основная часть работы выполнена: вот она:
//show the hud
MBProgressHUD* progressHUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
progressHUD.labelText = @"Loading";
progressHUD.mode = MBProgressHUDAnimationFade;
[self.list_websites getPath:[NSString stringWithFormat:@"%@?%@", @"websites", self.auth_header] parameters: nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
//download data in the success block
//refresh the ui
[self.tableView reloadData];
[progressHud self.view animated:YES];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//failure block. log the error
NSLog([error description]);
}];
Почему это не работает? Я могу получить данные. Но я не могу заставить прогресс отображаться. Как это исправить?
1 ответ
Runloop Notification Runloop и HTTP-запрос могут не совпадать. Так что метод, который показывает прогресс HUD, возможно, не вызывается.