2010-03-22 10 views
0

Je dois importer des données XML dans mon application.Modifier UIActionSheet après avoir fait son travail

Maintenant j'ouvre une UIActionSheet et j'ajoute comme sous-vue un UIActivityIndicatorView. Au départ, je montre une roue de progression et un bouton avec «Annuler». Lorsque le fichier XML a été importé, je veux masquer la roue de progression (c'est facile) et changer le bouton en un bouton "Terminé", le tout dans la même feuille UIAction. Ce que je fais maintenant, c'est de fermer l'UIActionSheet avec l'option dismissWithClickedButtonIndex, mais je n'aime pas ça parce que c'est comme si j'appuyais sur 'Cancel', et ensuite je montrais un UIAlertView affichant "Toutes les données ont été importées ".

Est-ce possible?

Répondre

1

Vous ne devriez pas faire cela, quand il se charge correctement juste rejeter l'ActionSheet. D'autre part, si une erreur se produit, affichez une alerte. Pensez à l'utilisateur qui utilisera l'application plusieurs fois par jour, un message Terminé à chaque fois sera une perte de temps.

MISE À JOUR
Comme je comprends votre objectif est d'utiliser le ActionSheet comme un popup (avec capacité Annuler), le cas échéant, appelez dismissWithClickedButtonIndex:animated: lorsque votre chargement XML est fait. Si son succès, puis il suffit d'appeler la méthode de rejet, si elle échoue puis appelez le rejet et popup une alerte

+0

Ceci est seulement une utilisation unique, donc un autre robinet dans le bouton de Done ne serait pas trop :-) Mais je suis d'accord avec vous. Comment puis-je rejeter la feuille d'action sans utiliser le bouton Annuler? – mongeta

+0

@mongeta, im mettre à jour ma réponse – medopal

+0

Oui, je sais que je peux rejeter en utilisant l'appel dismissWithClickedButton ... mais je n'ai qu'un seul bouton: Annuler. Si l'utilisateur touche l'annulation, j'annule l'opération et je ne souhaite pas utiliser la même action de méthode d'annulation pour simplement fermer l'ActionSheet sans annuler l'opération. merci, r. – mongeta

0

Ceci est un peu un hack mais devrait fonctionner. Notez qu'il y a de fortes chances pour que votre application ne soit pas acceptée dans l'App Store lorsque vous manipulez la fiche d'action de manière non prévue par Apple.

Affichez d'abord la feuille d'action avec les boutons «Terminé» et «Annuler». Avant d'afficher la feuille, masquez le bouton 'Terminé' en utilisant sa propriété cachée. Pour voir comment accéder au bouton 'Terminé', voir this question.

Ensuite, lorsque vous masquez UIActivityIndicatorView, modifiez également la propriété cachée des deux boutons «Annuler» et «Terminé», afin que le bouton «Terminé» devienne visible. Si le bouton "Terminé" apparaît dans la mauvaise position déplacez-le en modifiant sa propriété centre.

+0

oui, j'ai vu ce poste que vous vous référez. merci – mongeta

Questions connexes