Поэтому, когда я щелкаю по вспомогательному элементу выноски в моем mapView, в течение нескольких секунд ничего не происходит, потому что он делает запрос url и анализирует его, поэтому я хотел показать индикатор активности, чтобы пользователь не думал, что он заморожен. Вот код:
- (void)mapView:(MKMapView *)mv annotationView:(MKAnnotationView *)pin calloutAccessoryControlTapped:(UIControl *)control {
// start activity indicator
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSLog(@"tapped");
ArtPiece *artPiece = (ArtPiece *)pin.annotation;
//when annotation is tapped switches page to the art description page
artDescription *artD = [[artDescription alloc] initWithNibName:@"artDescription" bundle:nil];
artD.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
artD.startingLocation = mapView.userLocation.location.coordinate;
artD.selectedArtPiece = artPiece;
NSLog(@"0");
[self presentModalViewController:artD animated:YES];
NSLog(@"1");
[artD loadArt:artPiece];
NSLog(@"2");
// stop activity indicator
//[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[artD release];
}
Странно (мне все равно, может быть, я упускаю что-то очевидное, поскольку я довольно неопытен), индикатор активности не отображается до тех пор, пока метод не будет завершен, и модальное представление не начинает анимацию. Я положил NSLogs, чтобы посмотреть, что занимает время. У меня была пауза в 2 секунды между «0» и «1» и еще пара секунд между «1» и «2». Затем индикатор наконец-то показал, так что я уверен, что он по какой-то причине ждет завершения метода. Есть идеи почему?