Animer Spinner lors du chargement d'une nouvelle page

J'ai un UITableView qui, en externe, flux RSS.

Lorsque vous sélectionnez une ligne, il utilise navigationController et diapositives à partir de la droite, le problème est que le flux RSS contient des images donc on peut prendre de quelques secondes à charger et sans aucune indication de ce qui se passe, vous pouvez le prendre pour un plantage de l'application.

J'ai décidé d'ajouter un compteur de sorte que vous savez que la nouvelle page est en cours de chargement.

Voici mon code:

RootViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Loading New Page");

[tableView deselectRowAtIndexPath:indexPath animated:YES];
DetailsViewController *detailViewController = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
detailViewController.item = [rssItems objectAtIndex:floor(indexPath.row/2)];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake(160, 240);
[self.view addSubview:spinner];
[spinner startAnimating];
[spinner release];

}

DetailsViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

        NSString *imgURL = [item objectForKey:@"image"];
        NSData *mydata = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgURL]];
        item_photo.image = [[UIImage alloc] initWithData:mydata];

    item_title.text = [item objectForKey:@"title"];
    item_date.text = [NSString stringWithFormat:@"Date: %@",[item objectForKey:@"date"]];
    item_time.text = [NSString stringWithFormat:@"Time: %@",[item objectForKey:@"time"]];
    item_cost.text = [NSString stringWithFormat:@"Cost: £%@",[item objectForKey:@"cost"]];
    item_info.text = [item objectForKey:@"description"];
    self.navigationItem.title = @"Event Type";
}

Il y a deux problèmes avec ce code.

  1. De la Toupie n'est pas actif jusqu'à ce que après la nouvelle page est chargée.
  2. De la Toupie ne pas désactiver une fois chargé.

Si quelqu'un pouvait m'aider avec ce problème je serais vraiment avec gratitude.

source d'informationauteur Eli Stone