Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unwind segue by benoit capallere

4,882 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Unwind segue by benoit capallere

  1. 1. UnWind Segue Benoit Capallere - Edecision
  2. 2. Les grandes lignes • Utilisation avec les storyboards • Disponible depuis iOS 6 • Va servir à faire des traitements sur le retour sur un précèdent contrôleur avec moins de code que pour un delegate.
  3. 3. Mise en place (1) • On a 2 contrôleurs avec : – un bouton pour passer du « rouge » au vert » – Un bouton pour passer du « vert » au « rouge »
  4. 4. Mise en place (2) • On rajoute la méthode suivante sur le contrôleur 1 « rouge » - (IBAction)backUnWindSegue:(UIStoryboardSegue *)segue { } • On Clic sur le bouton du contrôleur 2 « vert » pour lui associer cette méthode avec le bouton « Exit » du storyboard.
  5. 5. L’impact dans le storyboard • Dans « connexion inspector » on va retrouver la connexion vers l’action • Dans l’éditeur de scène on va retrouver notre Unwind Segue
  6. 6. Récupérer des données • On attribue un identifiant à l’unwind segue • On rajoute une @property au controleur 2 « vert » • On peut ainsi récupérer la valeur depuis le controleur 1 « rouge » - (IBAction)backUnWindSegue:(UIStoryboardSegue *)segue { View2Controller *controller = segue.sourceViewController; NSLog(@"%d",controller.value); }
  7. 7. Traitement avec l’Unwind segue • Comme pour une segue on pourra faire un traitement particulier lors du déclenchement avec « prepareForSegue » - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"BackUnwind"]) { } }
  8. 8. Condition sur l’unwind segue • On pourra conditionner son exécution avec la méthode « shouldPerformSegueWithIdentifier » sur le contrôleur 2 « vert ». - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { return NO; } • Si on a plusieurs segues il suffira de rajouter le test sur le nom de l’identifieur - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { if ([identifier isEqualToString:@"BackUnWind"]) { return YES; } return NO; }
  9. 9. Unwind à plusieurs niveaux (1) • Il va être possible de dépiler plusieurs contrôleurs d’un coup • 0n rajoute un contrôleur « bleu » à notre exemple
  10. 10. Unwind à plusieurs niveaux (2) • Sur le contrôleur « bleu » si on cherche à l’associer au bouton « Exit » on retrouvera la méthode « backUnWindSegue » qui est dans le contrôleur 1 « rouge », n’étant pas implémenté dans le contrôleur 2 « vert ». • On va donc directement retourner sur le contrôleur 1 « rouge ».
  11. 11. Comme pour une segue • On peut – Déclencher la segue dans le code avec l’identifier [self performSegueWithIdentifier:@"BackManualUnWind" sender:self]; – Faire une « Custom » segue pour mettre en place sa propre animation.

×