Добавить индикатор загрузки при вызове веб-служб - цель c

Я разрабатываю приложение для iPhone. Одна из его особенностей: я нажимаю кнопку, и появляется tableView с данными, полученными из базы данных. Это работает правильно.

Дело в том, что иногда, когда я нажимаю эту кнопку, приложение зависает на пару секунд, поэтому я хотел бы добавить индикатор загрузки или что-то в этом роде, чтобы показать, что вам нужно немного подождать.

Что ж, я реализовал индикатор загрузки, и он работает, потому что я проверял его в других представлениях. Проблема в том, что когда я нажимаю кнопку, я добавляю подпредставление и нажимаю новый viewController, где в его viewWillAppear вызывается webService. Таким образом, приложение зависает, но не показывает индикатора загрузки. Он точно зависает в NSURLConnection, когда я отправляю запрос в веб-службу, но, я не знаю, почему, subView не добавляется. Если я не удалю подпредставление, когда я вернусь к этому представлению из tableView, отобразится индикатор загрузки.

Так что я не знаю, как решить эту проблему.

Если бы ты мог мне помочь, было бы здорово.

Я прикрепляю несколько фрагментов своего кода

    - (IBAction)menuButtonPressed:(id)sender{

   LoadingIndicator *load = [[LoadingIndicator alloc] init];
[load addLoadingView:self.view];

NSString *boton = [sender currentTitle];

if ([boton isEqualToString:@"Lugares"]){

    CategoriesViewController *catController = [[CategoriesViewController alloc] initWithNibName:@"CategoriesViewController" bundle:nil];

    [self.navigationController pushViewController:catController animated:YES];
    [catController release];

 }   
}

LoadingIndicator - это класс, в котором я создаю подпредставление с помощью индикатора.


person user2287914    schedule 04.06.2013    source источник


Ответы (1)


Вам нужно добавить ветку:

//add your loading view
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // make your web service call here

    dispatch_async( dispatch_get_main_queue(), ^{
        // process results from web service call
        // remove loading view
    });
});
person savner    schedule 04.06.2013