2012-10-19 2 views
0

J'ai deux contrôleurs modaux avec le bouton fermer dans la barre de navigation supérieure de chacun. Je veux intercepter le bouton de fermeture correct dans mon contrôleur de vue principale. Malheureusement, ce code ne fonctionne pas, pourquoi?sender.identifier isEqualToString

- (IBAction)close:(UIStoryboardSegue *)sender { 

     if ([sender.identifier isEqualToString: @"FirstModalClose"]) { 
     NSLog(@"FirstModalClose"); 
    } 

     if ([sender.identifier isEqualToString: @"SecondModalClose"]) { 
     NSLog(@"SecondModalClose"); 
    } 
} 
+0

Définir « ne fonctionne pas » – jrturton

+0

Quand je clique sur fermer sur le premier contrôleur modal il n'écrit pas dans NSLog FirstModalClose et quand je clique sur fermer dans le deuxième contrôleur modal il n'écrit pas dans NSLog SecondModalClose – Fabrizio

+1

Est-ce qu'il entre dans cette méthode? Avez-vous utilisé des points d'arrêt dans la méthode et vérifié ce que l'expéditeur est? Le problème est, il n'y a rien de mal avec le code que vous avez posté, donc le problème doit être ailleurs - soit vous n'avez pas défini l'identifiant sur votre segue, soit vous n'avez pas correctement connecté les boutons. Il est impossible de savoir à partir de l'information dans votre question. – jrturton

Répondre

1

j'avais simplement insérer FirstModalClose et SecondModalClose dans les champs appropriés :(Je inséré FirstModalClose et SecondModalClose dans Storyboard Segue et non Storyboard Déroulez Segue. Maintenant tout le travail correctement.

3

En fait, le type IBAction suggèrent que ce procédé est déclenché (le cas échéant) par un élément de GUI, et non un enchaînement. Ainsi, l'expéditeur est probablement un UIControl pas un UIStoryboardSegue.

Vous souhaitez peut-être utiliser la méthode UIViewController- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender. Là, vous obtenez les deux: l'expéditeur et le segue.

+0

Donc, je n'ai pas besoin de connecter le bouton de fermeture dans la vue modale (barre de navigation) dans mon premier contrôleur de vue? J'ai lu que chaque fois que j'ai besoin de faire un arrêt, j'ai toujours ajouter ce code - (IBAction) close: (UIStoryboardSegue *) sender {} – Fabrizio

+0

moi stupide! J'insère les noms FirstModalClose et SecondModalClose dans Storyboard Segue et non dans Storyboard Unwind Segue. – Fabrizio

Questions connexes