Отображение оповещения в модальном представлении

У меня есть приложение, которое отображает модальные представления. В последнем модальном представлении у меня есть форма. После нажатия кнопки «Готово» вызывается веб-служба, которая передает значения, введенные пользователем. После получения ответа модальное представление закрывается. Я хотел бы отобразить предупреждение или лист действий с просьбой подождать, так как вызов веб-службы занимает много времени. Проблема в том, что оповещение или список действий отображаются только после закрытия представления. Почему это происходит? Вот код готовой функции:

-(void)reg:(id)sender {
    if([password length] == 0) {
        //show alert
    }
    //other validation
    //This is were I write the alert
    UIActivityIndicator *activity = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle: 
                                                     UIActivityIndicatorStyleWhite];
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Processing" delegate:self otherButtonTitles:nil];
    [alert addSubview:activity];    
    [activity startAnimating];    
    [alert show];        
    WebServiceController *web = [[WebServiceController alloc]init];        
    //webservice called
    //getting the response
    //dismissing alert here    
    [self dismissModalViewControllerAnimated:YES];
}

person HG's    schedule 08.03.2011    source источник
comment
Можете ли вы опубликовать код для предупреждения?   -  person visakh7    schedule 08.03.2011


Ответы (2)


Вы должны написать прослушиватель или уведомление для ответа веб-сервиса. Если вы используете NSUrlConnection, используйте его делегат, чтобы получить ответ и отклоните модальное представление из метода делегата. В используемом вами методе представление закрывается сразу после вызова веб-сервиса.

person Nithin    schedule 08.03.2011
comment
Я не понял тебя. Я помещаю предупреждение перед вызовом веб-сервиса. Разве он не должен показывать предупреждение, а затем вызывать веб-сервис? - person HG's; 08.03.2011

Я понял. С модальными представлениями проблем не было. Предупреждение блокируется, поскольку основной поток выполняет веб-службу. Выполнение веб-службы должно выполняться в фоновом режиме. Вот ссылка на аналогичный вопрос с ответом.

Отображение предупреждения при вызове веб-службы

person HG's    schedule 09.03.2011