2010-11-03 16 views
0

J'écris une application qui permettra aux utilisateurs de l'iPhone de se connecter à leurs comptes. Une fois connecté, l'utilisateur peut extraire des informations, modifier des mots de passe, modifier d'autres types de données via des services Web. Je suis nouveau à la programmation iPhone et je suis un peu confus sur ma configuration viewController pour gérer cela. Ce que je voudrais faire est le suivant; 1) si l'utilisateur n'est PAS connecté - affiche une vue qui occupe l'intégralité de l'écran affichant mes champs de texte de connexion/mot de passe, etc. (certaines conditions seront mises en place pour vérifier si l'utilisateur a enregistré 2) si l'utilisateur est connecté ou une fois que l'utilisateur se connecte, supprimez l'affichage en taille réelle et chargez la vue tabBar. Si l'utilisateur se déconnecte, la vue de connexion principale se chargera.Meilleure façon d'accomplir ce scénario avec viewControllers - iPhone

J'ai besoin de deux viewControllers pour ce scénario particulier? J'ai beaucoup lu sur les contrôleurs de vue. Lire toute la documentation d'Apple mais je suis toujours confus car il y a tellement d'options/méthodes à utiliser.

Comme toujours je vous remercie d'avance.

T

Répondre

0

Juste une des nombreuses options possibles:

Créer LoginViewController et UITabBarViewController. délégué de l'application vérifiera au démarrage si elle a déjà les informations d'identification de l'utilisateur et afficher le contrôleur approprié

if ([dataModel hasUserCredentials]) 
    [window addSubview:[tabControlle view]]; 
else 
    [window addSubview:[loginController view]]; 

LoginViewController effectue journal et informe délégué app:

- (void) loginComplete 
{ 
    // XXX animation? 
    // XXX view(Will/Did)(Appear/Dosappear) and all the stuff, 
    [[loginContoller view] removeFromSuperview]; 
    [window addSubview:[tabController view]]; 
} 
+0

Merci pour les suggestions, je pense que je Je vais aller avec ce qu'Ole et Yuras ont suggéré. Très apprécié pour la direction. :) C'est pourquoi ce site est si génial! – tg2007

+0

J'ai frappé ce mur de briques massif. J'ai les deux configurations de mes contrôleurs. mon contrôleur de vue principal est un tabBarController (qui devrait être visible après qu'un utilisateur s'est connecté avec succès) et mon loginViewController. Si non connecté, je charge mon loginView qui est loginView.xib/.h/.m Je crée une action (login btn) pour simuler le login pour charger le tabBarController. Cela fonctionne bien. Ensuite, j'ai un bouton de déconnexion dans ma vue tabBar pour simuler la déconnexion pour revenir à loginView. J'ai la configuration de mes méthodes mais continue à obtenir une exception à cause d'un sélecteur inconnu mais mes méthodes existent. juste mordu – tg2007

+0

J'ai brûlé quelques jours à ce sujet.Je suis au point où je vais payer pour un tuteur juste pour me faire passer cet obstacle. Je veux m'assurer que ma disposition est correcte avant d'aller plus loin. N'importe quels preneurs? – tg2007

0

Voici comment je le ferais:

  • Le contrôleur de barre d'onglets est votre contrôleur principal de la vue. Vous l'initialisez d'abord (dans le fichier NIB principal) et l'ajoutez à la fenêtre de votre délégué d'application. En application:didFinishLaunchingWithOptions:, vous vérifiez si l'utilisateur est déjà connecté ou non. Sinon, vous présentez immédiatement votre écran de connexion en tant que contrôleur de vue modale. Si vous faites cela sans animation, l'utilisateur ne remarquera pas que le contrôleur de la barre d'onglets est déjà présent en dessous. Lorsque l'utilisateur se connecte, vous fermez le contrôleur de vue modale et l'interface utilisateur de la barre d'onglets devient visible.

0

Vous devriez envisager de créer une application basée sur la navigation. Cela aura un UINavigationController intégré. Vous pouvez l'utiliser pour contrôler vos fenêtres.