Je suis confronté au problème suivant lors de la mise en œuvre de mon application. J'ai une application à onglets et en cliquant sur chaque onglet, je peux accéder à la vue correspondante: par exemple, en cliquant sur tab2 ouvre view2. Mais je peux accéder à View2 aussi en cliquant sur un bouton sur la View1 qui est faite comme suit:Différents comportements dans l'accès aux vues via des onglets ou des segments
...
[buttonToView2 addTarget:self action:@selector(gotoView2) forControlEvents:UIControlEventTouchUpInside];
...
où:
- (void)gotoView2
{
//execute segue programmatically
[self performSegueWithIdentifier: @"View2Segue" sender: self];
}
View2 a une table qui affiche les données d'un tableau avec des données de l'Internet (dans la méthode viewDidAppear
). Ainsi, en sélectionnant l'onglet 2 ou en cliquant sur le bouton, vous devez amener l'utilisateur à la vue de destination2.
Cela fonctionne, mais a un comportement différent dans les deux cas:
- Si je clique sur l'onglet, la table est déjà rempli avec les données alors que l'application récupère les informations de l'Internet
- Si je clique le bouton et j'effectue le segue, la table est vide pendant que l'application récupère des informations sur internet
Pourquoi? Peut-être parce que le sélecteur invoqué par le bouton est exécuté sur un thread différent? Des idées s'il vous plaît?
Cordialement, Yassa
Vérifiez que vous avez correctement implémenté '- (void) prepareForSegue: (UIStoryboardSegue *) sgue expéditeur: (id) sender' pour votre seque (voir le message utile ?: http://stackoverflow.com/questions/8680453/programatically -copy-array-to-new-view-in-storyboard) – petert
Dans ce cas je n'ai pas implémenté le 'prepareForSegue' puisque je n'ai aucune information qui doit être passée à la vue de destination2 ... Je vais essayez d'expliquer mieux. J'ai: '@interface View2: UIViewController { NSArray * arrayView2; UIImage * profileImage; .... ' Si j'accède à cette vue via l'onglet pour la deuxième fois, toutes ces variables sont remplies. Si j'accède par programmation via Segue, ils sont nuls. – yassassin