Dans mon application, j'ai un identifiant et si la connexion est réussie, l'utilisateur obtient un identifiant de session. Lorsque la session de l'utilisateur expire et demande une page avec la session expirée, le serveur signale que la session a expiré et que l'utilisateur doit se reconnecter et que mon application appelle le popToRootViewControllerAnimated
(page de connexion). J'utilise la classe NSURLConnection
pour planifier les rappels sur mon UIViewController
lorsque le téléchargement est terminé. Le problème que je rencontre est que je planifie le NSURLConnection
pendant mon viewDidLoad
et les rapports de connexion avant que le contrôleur de vue apparaisse. Je voudrais mettre le NSURLConnection
dans le viewDidAppear
mais je ne veux pas contacter le serveur chaque fois que la vue apparaît. Est-ce que quelqu'un sait quelle est la meilleure façon de résoudre ce problème?iPhone Popping View Controller avant ViewDidAppear
Répondre
Tout d'abord, déclarer une variable enum:
typedef enum {
StatusLoggedOut,
StatusAttemptingLogin,
StatusLoggedIn
} LoginStatus;
Puis ajouter une variable membre à votre contrôleur de vue pour stocker l'état de connexion. Puis, à l'intérieur viewDidAppear: vous pouvez le faire:
- (void)viewDidAppear:(BOOL)animated
{
if (loginStatus == StatusLoggedOut) {
loginStatus = StatusAttemptingLogin;
// start the NSURLConnection
}
}
Lorsque la connexion est terminée, vous pouvez changer l'état de StatusLoggedIn ou StatusLoggedOut (selon la façon dont il est avéré).
Vous pourriez vous en sortir avec un simple BOOL mais l'expérience m'a appris qu'il vaut mieux représenter tous les états intermédiaires.
En outre, vous n'avez pas posé de questions à ce sujet, mais je pense que ce serait une meilleure expérience utilisateur si vous présentiez l'écran de connexion comme une vue modale; En utilisant popToRootViewController
, l'utilisateur perdra sa place dans votre application, ce qui est ennuyeux. (Sauf si vous le sauvegardez et le restaurez, auquel cas vous faites beaucoup de travail pour vous-même.)
- 1. Tabbar plus view controller iPhone
- 2. iphone - numberOfRowsInSection étant appelé avant viewDidAppear
- 3. Popping View from UIAlertView Alerte
- 4. Modal View Controller
- 5. Modal View Controller crash
- 6. iPhone: bon usage de View and View Controller
- 7. View Controller cycle de vie
- 8. Root View Controller Error
- 9. Segue Storyboard personnalisé pour Popping View?
- 10. Popping Voir les résultats Controller Odd navigationItem/backBarButtonItem Titre Swap
- 11. iOS Custom View Controller
- 12. Navigation & View Controller questions
- 13. iphone ViewDidAppear dans SubViews?
- 14. Liaison des propriétaires de fichiers et View Controller [iPhone SDK]
- 15. Navigation Controller ne pas pousser/Popping Voir Contrôleurs
- 16. Tableau intérieur View Controller
- 17. iOS5 Second View Controller
- 18. Dismissing Modal View Controller
- 19. add many view controller
- 20. (Model/View/Controller) MVC
- 21. Transitions Modal View Controller
- 22. View Controller Problème
- 23. modèle REJETER View Controller
- 24. Model View Controller
- 25. iOS « View Controller »
- 26. Model View Controller
- 27. Conventions Cocoa touch view/view-controller
- 28. Group View View avec le fichier Controller
- 29. iPhone Modal View Controller se sépare dans ViewController
- 30. iPhone EXC_BAD_ACCESS après l'événement viewDidAppear
+1 très bonne suggestion sur le contrôleur de vue modale pour se connecter. – InsertWittyName