Je suis nouveau au développement iphone.J'ai créé une application, dans laquelle la première vue de la barre d'onglets, charger une page web et dans la deuxième barre d'onglets, il analyse un fichier xml et affiche le contenu dans la vue tableau. Lorsque je clique sur la deuxième barre d'onglets, la vue de la barre d'onglets est vue seulement après l'analyse, jusqu'à ce que la barre d'onglets apparaisse comme désélectionnée. Je veux afficher la vue de tabulation avec l'indicateur d'activité quand l'analyse est terminée. Je l'accomplis. S'il vous plaît, aidez-moi. Merci.Comment faire apparaître la vue tabbar lorsque l'analyse est effectuée dans iphone?
Répondre
Sans informations supplémentaires sur est difficile à dire, mais je suppose que vous êtes en train d'analyser le fichier XML à l'intérieur viewDidLoad()
ou loadView(
). Cependant, l'analyse peut nécessiter du temps et vous bloquez le thread principal responsable de la mise à jour de l'interface utilisateur. C'est la raison pour laquelle vous ne voyez la barre d'onglets qu'une fois l'analyse terminée. Pour remédier à cette situation, vous devez différer l'affichage de la table en affichant des données, afficher un indicateur d'activité pour indiquer à vos utilisateurs que quelque chose se passe et démarrer un thread d'arrière-plan chargé d'analyser votre fichier XML. Le fichier XML une fois terminé arrête l'indicateur d'activité et configure votre vue de table avec les données analysées.
Vous pouvez le faire très facilement en utilisant l'API disponible (detachNewThreadSelector:toTarget:withObject:
et performSelectorOnMainThread:withObject:waitUntilDone:
etc), cependant, vous voudrez peut-être envisager de tirer parti de MBProgressHUD qui fournit exactement la fonctionnalité dont vous avez besoin Enveloppé dans une très facile à utiliser la classe.
Je présume que vous savez ou serez en mesure de comprendre comment fonctionne l'indicateur d'activité.
Vous pouvez utiliser des méthodes déléguées NSXMLparser pour analyser les données XML. vous pouvez collecter les données XML dans les objets de modèle que vous créez en tant que propriétés dans votre classe qui analyse le fichier XML, c'est-à-dire un tableau simple. puis, à partir de la vue que vous voulez être averti de l'analyse terminée, vous pouvez l'enregistrer en tant qu'observateur pour le keypath à ces objets de modèle en utilisant l'observation de valeur de clé (KVO). Une fois la valeur de ces propriétés modifiée, votre vue (ou classe intermédiaire) recevra un message qu'elle pourra ensuite utiliser pour mettre à jour l'affichage.
Ces messages seront envoyés aux observateurs enregistrés aussi longtemps que la classe qui envoie le message est compatible avec le codage de valeur de clé (KVC) pour ces propriétés. rendre vos ivars accessibles à travers les propriétés est suffisant dans la plupart des cas.
pour ajouter un observateur:
- (void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context
pour être informé des changements:
- (void)didChangeValueForKey:(NSString *)key
vérifier la valeur de clé documentation d'observation:
je pense que vous devriez devez utiliser la classe NSTimer avec la durée spécifiée.
exécutez la méthode qui analyse les données (c.-à-d.méthode GetXMLData méthode définie --user) à travers elle,
NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(GetXMLData:) userInfo:nil repeats:NO];
et commencer indicateur d'activité à l'aide
[activityIndicator startAnimating];
arrêt dans la méthode ci-dessous
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
.
.
.
[activityIndicator stopAnimating];
}
j'espère que vous undrstand ce que je suis dire ... faire un commentaire si besoin d'aide ...
- ne font pas d'analyse syntaxique MainThread, détachez un nouveau thread pour l'analyse syntaxique ([NSThread detachNewThreadSelector: toTarget: withObject:])
- après analysé (parserDidEndDocument:) utilisent performSelectorOnMainThread pour actualiser la tableView .
- 1. Comment faire pour décharger une vue TabBar lorsque la nouvelle vue TabBar est chargée?
- 2. Comment faire apparaître UIKeyboard dans une vue?
- 3. Comment ajouter TabBar en vue dans Android
- 4. comment définir la valeur de badge dans tabbar dans iphone?
- 5. IPhone erreur d'application TabBar
- 6. Contrôleurs TabBar iphone
- 7. iPhone 4 - Icônes TabBar
- 8. Comment puis-je faire apparaître une fenêtre contextuelle, en fonction de la sélection effectuée par un utilisateur dans une vue en grille?
- 9. Comment faire un "affichage" Outlet apparaître dans une plume ViewController?
- 10. Faire apparaître des images ... Comment?
- 11. UIScrollView dans une navigation contrôlée TabBar - IPhone
- 12. iPhone Utilisation d'une vue Modal d'un TabBar Voir
- 13. iPhone Modifier TabBar à la volée?
- 14. Existe-t-il un moyen de faire apparaître un contrôleur de vue lorsque l'utilisateur change d'onglet?
- 15. Contrôleur Tabbar iPhone avec UIPageController
- 16. Comment cacher TabBar parent lorsque le contrôleur poussant NavigationController
- 17. Comment faire pour qu'un bouton TabBar charge toujours la première vue d'un contrôleur de navigation
- 18. Impossible de masquer TabBar sur la sous-vue dans l'iphone
- 19. Comment faire apparaître une sous-vue en plus d'une activité existante dans Android?
- 20. Où la localisation est-elle effectuée dans le code Eclipse?
- 21. Application Tabbar dans l'iphone
- 22. Suppression de plusieurs ViewControllers iPhone tabbar application
- 23. Comment faire pour apparaître à partir d'une vue avant d'exécuter un morceau de code
- 24. Quelle est la couleur d'une vue "Info" dans l'adresse IPhone?
- 25. Faire défiler une vue lorsque le clavier est actif
- 26. iPhone - sous-vue dealloc UIViewController lorsque removeFromSuperview
- 27. Comment puis-je faire apparaître l'icône de mon application iPhone ad hoc dans iTunes?
- 28. comment faire la vue déroulante pour l'iphone
- 29. Comment ajouter un TabBar à l'application iPhone basée sur NavigationController
- 30. Comment faire apparaître un contrôleur de vue arbitraire de n'importe où dans une pile de navigation