У меня есть вид и, кроме всего прочего, кнопка на нем. Когда пользователь нажимает кнопку, выполняется следующий код:
- (IBAction) goToPhotoViewControllerView:(id) sender{
alert = [[UIAlertView alloc] initWithTitle:@"Por favor, aguarde" message:@"Carregando imagens"
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:nil];
[alert show];
if(alert != nil) {
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height-45);
[indicator startAnimating];
[alert addSubview:indicator];
[indicator release];
}
dispatch_async(dispatch_get_global_queue(0, 0), ^{
//Do a lot of stuff here
PhotoViewController *photoViewControllerView = [[PhotoViewController alloc] initWithNibName:@"PhotoViewController" bundle:nil];
[iosDao selectComics];
[photoViewControllerView startWithComic:[[iosDao.comics lastObject] idComic] numPanels:[[[iosDao.comics lastObject] panels] count]];
photoViewControllerView.navigationItem.title = @"Comics";
[iosDao release];
[[self navigationController] pushViewController:photoViewControllerView animated:YES];
[alert dismissWithClickedButtonIndex:0 animated:YES];
[alert release];
});
}
Что происходит, так это то, что большую часть времени выполняется весь асинхронный код, отклоняя предупреждающее сообщение. Однако после того, как предупреждающее сообщение будет отклонено, экран все еще остается замороженным примерно на 2 или 3 секунды, прежде чем он перейдет к следующему контроллеру представления (photoViewControllerView). Я понятия не имею, почему это происходит. Я хочу, чтобы предупреждающее сообщение оставалось активным столько, сколько необходимо. Любые идеи?
Заранее спасибо!