Unwind segue by benoit capallere
Upcoming SlideShare
Loading in...5
×
 

Unwind segue by benoit capallere

on

  • 1,756 views

 

Statistics

Views

Total Views
1,756
Views on SlideShare
247
Embed Views
1,509

Actions

Likes
0
Downloads
1
Comments
0

4 Embeds 1,509

http://cocoaheads.fr 1489
http://feedly.com 17
http://feedproxy.google.com 2
http://dbhome.no-ip.biz 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Unwind segue by benoit capallere Unwind segue by benoit capallere Presentation Transcript

  • UnWind Segue Benoit Capallere - Edecision
  • 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.
  • 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 »
  • 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.
  • 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
  • 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); }
  • 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"]) { } }
  • 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; }
  • 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
  • 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 ».
  • 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.