iphone: UIAlertView не исчезает и блокирует UIProgressView - PullRequest
0 голосов
/ 29 июля 2011

У меня есть UIAlertView, который спрашивает пользователя, хотят ли они скопировать группу контактов.После того, как пользователь нажимает «Продолжить», я хочу, чтобы исчезнувший AlertView, был заменен на UIProgressView, который отображает скорость загрузки.и он не исчезнет, ​​пока не завершится весь процесс.Как только он исчезает, появляется панель UIProgressView, но к тому времени она достигла 100%.

Как немедленно убрать UIAlertView с экрана и показать вместо этого индикатор выполнения.

Воткод.Спасибо за помощь.

-(IBAction)importAllAddressBook:(id)sender {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Import ALL Contacts" message:@"Do you want to import all your Address Book contacts?  (Please note that only those with a first and last name will be transfered)" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil];
    [alert show];
    [alert release];


}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    if (buttonIndex == 0) {
        NSLog(@"NO STOP");
        return;
    }else {
        NSLog(@"YES CONTINUE");
        importAllContactsProgress.hidden = NO;  // show progress bar at 0
        [self importAllMethod];           
        }
}

// method to import all Address Book
-(void) importAllMethod {


    importAllContactsProgress.progress = 0.0;

   load names etc etc 

1 Ответ

2 голосов
/ 29 июля 2011

Вы хотите выполнить импорт в фоновом потоке:

[self performSelectorInBackground:@selector(importAllMethod)];

Ваш метод импорта блокирует основной поток и предотвращает любые действия пользовательского интерфейса.

...