을 업데이트 할 수 없습니다 :AFNetworking + MBProgressHUD 나는 이런 식으로 뭔가 쓴 내의 ViewController의의 viewDidLoad 메서드에서 HUD 상태
- (void)viewDidLoad {
[super viewDidLoad];
self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
self.hud.labelText = @"Loading";
[serverData loadNewsData:self ];
}
는 기본적으로 나는 HUD를 표시하고의 ViewController를 전달, 다른 클래스에 메소드 loadNewsData을 시작합니다.
다른 클래스의 방법은 다음과 같이이다 :
-(void)loadNewsData:(LoadViewController*) loadViewController
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:[siteAddress stringByAppendingString:getNewsList] parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
loadViewController.hud.detailsLabelText = @"updating news";
[NewsModel setNewsData:responseObject];
loadViewController.hud.detailsLabelText = @"Finished";
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
AFHTTPRequestOperation의 요청이 내가 변화하는 HUD의 하위 메뉴를보기 위해 기다리고 있었다 시작 "업데이트 소식 ". 그러나 아무 일도 일어나지 않습니다. 프로세스가 끝나면 Finished가 표시됩니다. 요청이 10 초 정도 걸리므로 "업데이트 소식"을 보길 기대했지만 아무것도하지 않았습니다. 나는이에 또한 시도 : 나는 UI 큐에 있어야
dispatch_async(dispatch_get_main_queue(), ^{
loadViewController.hud.detailsLabelText = @"updating news"; });
생각 몇 가지 UI 물건을 업데이트 할 수 있지만,이 중 하나가 작동하지 않았다. 나는 초보자 일거야. 아마도 나는 뭔가를 놓친다.
좋은 조언을 주셔서 감사합니다.
"로드 중"을 "업데이트 중"으로 변경하면 문제가 없습니다. 다소 "로드 중"이라고 여겨집니다. – Zhang
'viewController'를'serverData' 헬퍼 객체에 전달하지 않을 것입니다. VC에서'loadNewsData'를 호출하는 메소드가 있고 UI를 업데이트 할 수있는 완료 블록이 있다면 더 좋습니다. 위의 설명과 같이 "로드 중"과 "새로드 중"의 차이점은 무엇입니까? – Koen