Я пытаюсь создать индикатор активности в приложении для iPhone. Проблема в том, что я не могу заставить его появиться до того, как фактическое задание, во время которого я хочу, чтобы оно отображалось, уже выполнено. Есть ли что-то необычное в том порядке, в котором iPhone делает вещи?
Вот мой проблемный код (в моем делегате приложения):
-(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;
}
Затем я называю этот код так:
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];
}
Проблема в том, что мой индикатор активности не появляется, пока новый контроллер представления не будет помещен в стек navController. Могу ли я каким-то образом это контролировать?
Заранее спасибо!
-коврики