2013-06-28 73 views
0

我正在使用AFnetworking調用服務器。在下載時,我正在使用MBProgressHUD顯示正在下載數據。迄今爲止,一切都很好。我的問題是當我按主頁按鈕,然後重新啓動應用程序。我希望頁面自動刷新,MBProgressHUD向用戶顯示正在下載的內容。我做不到。我可以下載數據,但我無法使HUD部分正常工作。MBProgressHud,AFnetworking和刷新數據

首先,在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]); 

}]; 

爲什麼不這項工作?我可以得到這些數據。但我無法獲得進度顯示。我該如何解決?

+0

你可以嘗試把代碼顯示進度HUD在主線程中運行? –

+0

@ verbumdei不是行「MBProgressHUD * progressHUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];」正在主線程上運行?也許我不理解你的問題... – user678392

+0

你可以打印一些日誌,以確認你確實成功獲取數據?另外這一行:'[progressHud self.view animated:YES];'沒有任何意義。 – Stunner

回答

0

Notification Runloop和HTTP請求runloop可能不一樣。所以顯示進度HUD的方法可能不會被調用。