2010-08-23 5 views
0

J'ai une application iPhone qui est configuré comme suit:commutateur et Masquer TabBarItems

  • UITabBarController
  • CustomViewControllerLogin (UIViewController)
  • UINavigationController
    • CustomViewController1 (UIViewController)
    • CustomViewController2 (UIViewController)
  • CustomViewControllerLogout (UIViewController)

Comment puis-je passer à CustomViewController1, lorsque l'utilisateur clique sur le bouton de connexion sur CustomViewControllerLogin?

J'ai aussi, besoin de "cacher" CustomViewControllerLogin et "show" CustomViewControllerLogout?

Merci d'avance !!! Jason

Répondre

0

Eh bien, votre approche ne semble pas être la plus chanceuse pour moi.

Ce que vous pouvez faire est de remplacer le UITabBarController avec un UINavigationController et aller avec l'approche suivante:

  • présenter votre CustomViewControllerLogin modalement. Vous pouvez utiliser quelque chose comme ceci:

[self.navigationController presentModalViewController:instanceOf CustomViewControllerLogin animated:YES];

  • mis l'RootViewController dans le NavigationController être votre CustomViewController1

  • dans votre CustomViewControllerLogin, une fois que la connexion se fait avec succès, rejeter la CustomViewControllerLogin en utilisant ce qui suit:

[self dismissModalViewControllerAnimated:YES]

  • quand cela est exécuté, votre CustomViewController1 sera affiché. Faites votre logique de l'application ici et avoir un bouton "Déconnexion". Vous pouvez le mettre sur la barre de navigation, sur le côté droit par exemple.

  • lorsque l'utilisateur tape sur ce bouton de fermeture de session, vous faites la même chose que vous avez fait pour la connexion:

[self.navigationController presentModalViewController:instanceOf CustomViewControllerLogout animated:YES];

J'ai vu beaucoup d'applications où le UITabBarController est abusé pour fins auxquelles il n'était pas destiné. Voir par exemple this article.

+0

Salut Stelian, D'abord merci pour votre temps. C'est apprécié!!! Je suis d'accord que TabBarController peut être abusé, mais j'ai des types d'informations distincts que je voudrais organiser avec le TabBarController. J'espérais que, comme dans le contrôle Tab de Microsoft Access, vous pouvez dire quelque chose comme: tab1.visible = False. Une idée de comment faire? P.S., vous m'avez donné beaucoup de matière à réflexion sur la réorganisation pour éliminer le TabBarController, mais je veux continuer à le comprendre avant de changer de direction. Jason – JasonBub

+0

Salut Stelian, Je voulais juste vous faire savoir que votre suggestion m'a vraiment aidé à réfléchir différemment à l'organisation de mon application. J'ai maintenant incorporé des vues Modèle pour gérer la collecte des informations d'identification de l'utilisateur, ce qui m'a conduit à une délégation (grâce à l'utilisation de @protocol, ce qui est vraiment cool). Merci! – JasonBub

+0

Salut Jason, content d'avoir entendu ça. De rien! –