У меня есть следующий код, который подключается к веб-службе и возвращает массив категорий.
Я использую следующую оболочку для веб-служб SOAP:
http://www.sudzc.com/
.. и следующие MBProgressHUD
для индикатора активности:
https://github.com/jdg/MBProgressHUD
Я хотел бы, чтобы индикатор прогресса HUD указывал, что он подключается и получает результаты.В настоящее время я использую MBProgressHUD
для достижения желаемого эффекта, однако я замечаю, что он не совсем работает должным образом.Индикатор прогресса исчезает до того, как фактические ячейки в моем tableView
загружаются и отображаются.Я также использую MBProgressHUD
в различных областях своего приложения, но обычно каждый раз, когда я подключаюсь к веб-службе, чтобы получить результаты.
Может ли кто-нибудь привести меня в правильном направлении, как исправить приведенный ниже кодправильно работать?Я думаю, что это может быть связано с тем, что метод обратного вызова срабатывает после отображения индикатора прогресса.Не совсем уверен, как правильно реализовать MBProgressHUD
с помощью метода обратного вызова.
Это моя ужасная попытка "попытаться" заставить его работать.
- (void)showHUD {
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
// Add HUD to screen.
[self.navigationController.view addSubview:HUD];
// Register for HUD callbacks so we can remove it from the window at the right time.
HUD.delegate = self;
HUD.labelText = @"Loading";
// Show the HUD while the provided method executes in a new thread
[HUD showWhileExecuting:@selector(runLocalNotificationHandler) onTarget:self withObject:nil animated:YES];
}
- (void)runLocalNotificationHandler {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(connectToService) withObject:nil waitUntilDone:YES];
[pool release];
}
- (void)connectToService {
Service1 *service = [[Service1 alloc] init];
[service GetCategories:self action:@selector(handlerGetCategories:)];
[service release];
}
- (void)handlerGetCategories:(id)value {
// parse objects returned from array, populate array, reload table view data, etc
}