0

我正在使用 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]);

}];

为什么这不起作用?我可以得到数据。但我无法让 progressHud 显示。我该如何解决?

4

1 回答 1

0

Notification Runloop 和 HTTP request runloop 可能不一样。因此,可能不会调用显示进度 HUD 的方法。

于 2015-08-20T02:02:13.833 回答