2011-05-19 2 views
1

Mon application dispose d'un écran de connexion avant qu'un utilisateur entre dans la vue principale. Je vais faire un presentModalViewController: si un utilisateur ne s'est pas connecté. Dans la vue principale viewDidLoad: j'ai un appel à une API REST qui nécessite le nom d'utilisateur et mot de passe de l'utilisateur. Maintenant, si l'utilisateur s'est connecté alors c'est bien. Le problème est que même lorsque la vue de connexion est affichée, cette vue principale derrière la vue de connexion continue de faire un appel à l'API REST, bien que cela ne soit pas supposé jusqu'à ce que la vue modale soit fermée. Alors, quelle est la meilleure façon de résoudre ce problème? Mettre l'appel API dans viewWillAppear:? Un délégué?La meilleure façon de retarder l'appel REST jusqu'à ce que l'utilisateur entre les informations de connexion à la vue modale

Répondre

0

viewWillAppear et viewDidAppear seront toutefois appelés après viewDidLoad.

Vous pouvez utiliser des délégués. Le contrôleur de connexion peut donner un rappel à son délégué quelque chose comme -(void) loginController:(LoginViewController *) controller didLogin

Et ici vous pouvez appeler votre API REST.

+0

Êtes-vous sûr que c'est la bonne façon de déclarer un délégué? n'avez-vous pas besoin d'une variable après didLogin? – aherlambang

1

Suivez l'itinéraire délégué. Implémenter le code dans viewWillAppear: le fera s'exécuter plusieurs fois, alors que si vous utilisez un délégué, votre code ne sera appelé qu'une seule fois.

Questions connexes