J'essaie de créer un indicateur d'activité dans l'application iPhone. Le problème est que je ne peux pas le faire apparaître avant que la tâche réelle que je veux que le diplay soit joué est déjà terminée. Y a-t-il quelque chose de funky dans la commande de l'iPhone?Comment puis-je faire apparaître instantanément un UIView?
Voici mon code problématique (dans mon délégué app):
-(BOOL)showProgressView: (NSString *) message {
self.progress = [[UIView alloc] initWithFrame:window.frame];
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"squircle.png"]];
[img setAlpha:0.5];
[img setFrame:CGRectMake(94, 173, 133, 133)];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(51.5, 51.5, 30, 30)];
spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[img addSubview:spinner];
[self.progress addSubview:img];
[spinner startAnimating];
[img release];
[spinner release];
[window addSubview:self.progress];
return YES;
}
J'appelle alors ce code comme ceci:
if ([appDelegate showProgressView:@"Loading..:"])
{
//My actual code loads data and stuff here but that is not important
//drawCtrl is a UIViewController subclass that is instantiated here
UINavigationController *navController = [appDelegate navigationController];
[navController pushViewController:drawCtrl animated:YES];
[drawCtrl release];
}
Le problème est que mon indicateur d'activité n'apparaît pas tant que le nouveau contrôleur de vue n'est pas poussé dans la pile de navController. Puis-je contrôler cela d'une manière ou d'une autre?
Merci d'avance!
-Mats