MBProgressHud,AFnetworking和刷新数据

时间:2013-06-28 22:22:22

标签: ios asynchronous afnetworking mbprogresshud afhttpclient

我使用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 个答案:

答案 0 :(得分:0)

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