2010-04-20 20 views
1

J'ai recherché un tutoriel et je n'arrive pas à en trouver un pour un indicateur d'activité dans une barre de navigation. Dans mon mainWindow.xib j'ai un contrôleur de barre à onglets avec 4 contrôleurs d'onglets contenant chacun une vue de table. chaque chargement JSON utilise le framework hébergé chez Google.iPhone xcode - Indicateur d'activité avec contrôleur de barre d'onglets et contrôleurs multi-tables

Dans un de mes contrôleur de vue que je peux ajouter un indicateur d'activité à la barre de navigation en utilisant:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,20,20)]; 
[activityIndcator startAnimating]; 
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndcator]; 
self.navigationItem.rightBarButtonItem = activityItem; 

cependant et peut la désactiver en utilisant:

self.navigationItem.rightBarButtonItem.enabled = FALSE; 

Mais si je place ceci dans mon événement viewDidLoad montre tout le temps. Je veux seulement le montrer quand je choisis une rangée dans ma vue de tableau. donc je l'ai ajouté en haut de didSelectRowAtIndexPath et la ligne d'arrêt après que je charge un flux. il montre mais prend un deuxième ou deux et seulement des spectacles pendant environ une demi-seconde.

est un événement qui déclenche avant l'événement didSelectRowAtIndexPath un type d'événement de chargement? sinon, quel est le menthord standard pour la mise en œuvre de cette fonctionnalité?

+0

Voulez-vous afficher l'indicateur d'activité pour l'action d'analyse du flux rss? – Warrior

+0

Oui, cela prend normalement 2 à 3 secondes pour passer aux données de flux analysées. – Frames84

+0

Je pense que vous n'avez pas affiché l'indicateur d'activité dans la vue où l'analyse est effectuée, ne placez pas l'indicateur d'activité dans le didSelectRowAtIndexPath dans le viewDidLoad de la vue où l'analyse est effectuée et supprimez l'indicateur une fois l'analyse terminée – Warrior

Répondre

1

Espérons que link vous aide.Ceci permet d'afficher l'indicateur d'activité pour l'action d'analyse du flux rss.

Tout le meilleur.

+0

un peu. Mais j'ai besoin de démarrer l'indicateur d'activité dans la méthode didSelectRowAtIndexPath. Je le charge avec des lignes de niveau supérieur, puis quand il est sélectionné, il s'éteint et charge mon flux JSON pour la ligne sélectionnée, ce qui prend 2 à 3 secondes. Merci – Frames84

1

Dans .h fichier

@property (nonatomic,retain) UIActivityIndicatorView *spinner; 

Dans le fichier .m, @synthesize spinner; // libérer aussi dans dealloc

En viewDidLoad, faites ceci:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc]  
     initWithFrame:CGRectMake(0,0,20,20)]; 
self.spinner = activityIndicator; 
spinner.hidesWhenStopped = YES; // this is the default, but never hurts to be sure 
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:spinner]; 
self.navigationItem.rightBarButtonItem = activityItem; 

En didSelectRowAtIndexPath, faites ceci:

[self.spinner startAnimating]; 

Lorsque l'alimentation est fait, faites ceci:

[self.spinner stopAnimating];