ViewDidLoad(), ViewWillAppear(), autre ?

Bonjour,

J’ai une application avec une navigation basée sur une TabBar.
Quand je clique sur un onglet, on appelle le ViewDidLoad() et ViewWillAppear(). Très bien.

L’idée c’est d’afficher une vue à ce moment là si l’utilisateur n’est pas connecté. Je fais mon test et j’affiche la vue.

Le problème c’est que si je place mon test (et l’affichage de ma vue secondaire) :

  • Dans le ViewDidLoad() : Quand je dismiss mon VC secondaire, je n’ai aucun moyen d’y retourner (sauf à mettre un bouton)

  • Dans le ViewWillAppear() : Dès que je dismiss mon VC secondaire, il se réaffiche directement.

Du coup, mois je voudrais le cas suivant :

  • On va sur la tab “profil”
  • Si on est pas connecté, la vue de connexion s’affiche
  • Je ne me connecte pas, je dismiss la vue (je suis donc sur la vue profil, sans infos)
  • Je change de tab et reviens sur la tab profil
  • Si on est pas connecté, la vue de connexion s’affiche

C’est ce dernier point qui me pose un soucis.
Vous avez une piste ?

Merci :slight_smile:

En effet c’est compliqué car le viewWillAppear sera appelé aussi bien via la tabbar que via la disparition de ta vue modale de connexion.
C’est pas très joli mais tu peux utiliser un booléen te précisant si tu dois ignorer le prochain viewWillAppear pour la connexion. Tu le passes à true juste avant d’afficher la vue modale et à false après l’avoir ignoré une fois.
Je pense que le mieux serait peut être d’afficher une première fois cet écran automatiquement mais si l’utilisateur l’ignore, peut être mettre un bouton pour les prochains passages au lieu de le lui remettre à chaque fois. Ça serait moins énervant pour lui et toi ça t’enleverait une épine du pied :slight_smile:

Bonjour Maxime,

J’ai effectivement pris le pas d’afficher une fois ma vue modale de connexion et si l’utilisateur ferme cette vue, j’affiche un bouton pour la réafficher :wink:

Merci de ta réponse :slight_smile:

1 « J'aime »