SlideShare a Scribd company logo
1 of 11
Download to read offline
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.

More Related Content

Viewers also liked

H2O, le Cloud par Alter Way
H2O, le Cloud par Alter WayH2O, le Cloud par Alter Way
H2O, le Cloud par Alter WayALTER WAY
 
Clases de palabras de los rijj
Clases de palabras de los rijjClases de palabras de los rijj
Clases de palabras de los rijjJOSÉ TOMÁS
 
E-réputation : comment vous protéger ? ISEE 28 mai 2013
E-réputation : comment vous protéger ? ISEE 28 mai 2013E-réputation : comment vous protéger ? ISEE 28 mai 2013
E-réputation : comment vous protéger ? ISEE 28 mai 2013Agence Double Numérique
 
Contra el absentismo
Contra el absentismoContra el absentismo
Contra el absentismomaestrocurro
 
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...Universidad Autónoma de Barcelona
 
Declaration patrimoine-vallaud-belkacem
Declaration patrimoine-vallaud-belkacemDeclaration patrimoine-vallaud-belkacem
Declaration patrimoine-vallaud-belkacemLe Point
 
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?luisel
 
Citizen act comment faire du buzz_2011_2012
Citizen act comment faire du buzz_2011_2012Citizen act comment faire du buzz_2011_2012
Citizen act comment faire du buzz_2011_2012CITIZEN ACT
 
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...Universidad Autónoma de Barcelona
 
Autour du vieux poêle
Autour du vieux poêleAutour du vieux poêle
Autour du vieux poêlecelleb
 
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...Armel Laminsi
 
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...Universidad Autónoma de Barcelona
 

Viewers also liked (20)

H2O, le Cloud par Alter Way
H2O, le Cloud par Alter WayH2O, le Cloud par Alter Way
H2O, le Cloud par Alter Way
 
Etude Stardust
Etude StardustEtude Stardust
Etude Stardust
 
Clases de palabras de los rijj
Clases de palabras de los rijjClases de palabras de los rijj
Clases de palabras de los rijj
 
Mayores tic
Mayores ticMayores tic
Mayores tic
 
E-réputation : comment vous protéger ? ISEE 28 mai 2013
E-réputation : comment vous protéger ? ISEE 28 mai 2013E-réputation : comment vous protéger ? ISEE 28 mai 2013
E-réputation : comment vous protéger ? ISEE 28 mai 2013
 
Contra el absentismo
Contra el absentismoContra el absentismo
Contra el absentismo
 
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...
La (s) reforma (s) laboral (es) de 2012 y 2013. Objetivos declarados. ¿Objeti...
 
Declaration patrimoine-vallaud-belkacem
Declaration patrimoine-vallaud-belkacemDeclaration patrimoine-vallaud-belkacem
Declaration patrimoine-vallaud-belkacem
 
éTica y responsabilidad en la transmisión del vih
éTica y responsabilidad en la transmisión del vihéTica y responsabilidad en la transmisión del vih
éTica y responsabilidad en la transmisión del vih
 
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?
ADOPCIÓN ¿ ERA ESTO LO QUE ESPERÁBAMOS ?
 
Interaction webinair google_panda
Interaction webinair google_pandaInteraction webinair google_panda
Interaction webinair google_panda
 
Citizen act comment faire du buzz_2011_2012
Citizen act comment faire du buzz_2011_2012Citizen act comment faire du buzz_2011_2012
Citizen act comment faire du buzz_2011_2012
 
Lancement Observatoire TEC (Tendance Emploi Compétence)
Lancement Observatoire TEC (Tendance Emploi Compétence)Lancement Observatoire TEC (Tendance Emploi Compétence)
Lancement Observatoire TEC (Tendance Emploi Compétence)
 
La reforma de la negociació col·lectiva. Juliol 2011.
La reforma de la negociació col·lectiva. Juliol 2011.La reforma de la negociació col·lectiva. Juliol 2011.
La reforma de la negociació col·lectiva. Juliol 2011.
 
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...
Análisis del Informe de la Ponencia del Proyecto de Ley de medidas urgentes p...
 
Autour du vieux poêle
Autour du vieux poêleAutour du vieux poêle
Autour du vieux poêle
 
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...
95% des annonceurs Google Adwords perdent de l'argent. Voici pourquoi...
 
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...
No sólo de ERES de extinción de contratos vive (y trabaja) la Audiencia Nacio...
 
Depliant pahvmjep2013web
Depliant pahvmjep2013webDepliant pahvmjep2013web
Depliant pahvmjep2013web
 
Intervento vesuviani-intervento-luca-belfiore
Intervento vesuviani-intervento-luca-belfioreIntervento vesuviani-intervento-luca-belfiore
Intervento vesuviani-intervento-luca-belfiore
 

More from CocoaHeads France

More from CocoaHeads France (20)

Mutation testing for a safer Future
Mutation testing for a safer FutureMutation testing for a safer Future
Mutation testing for a safer Future
 
iOS App Group for Debugging
iOS App Group for DebuggingiOS App Group for Debugging
iOS App Group for Debugging
 
Asynchronous swift
Asynchronous swiftAsynchronous swift
Asynchronous swift
 
Visual accessibility in iOS11
Visual accessibility in iOS11Visual accessibility in iOS11
Visual accessibility in iOS11
 
My script - One year of CocoaHeads
My script - One year of CocoaHeadsMy script - One year of CocoaHeads
My script - One year of CocoaHeads
 
Ui testing dealing with push notifications
Ui testing dealing with push notificationsUi testing dealing with push notifications
Ui testing dealing with push notifications
 
CONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANECONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANE
 
L'intégration continue avec Bitrise
L'intégration continue avec BitriseL'intégration continue avec Bitrise
L'intégration continue avec Bitrise
 
Super combinators
Super combinatorsSuper combinators
Super combinators
 
Design like a developer
Design like a developerDesign like a developer
Design like a developer
 
Handle the error
Handle the errorHandle the error
Handle the error
 
Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3
 
IoT Best practices
 IoT Best practices IoT Best practices
IoT Best practices
 
SwiftyGPIO
SwiftyGPIOSwiftyGPIO
SwiftyGPIO
 
Présentation de HomeKit
Présentation de HomeKitPrésentation de HomeKit
Présentation de HomeKit
 
Programme MFI retour d'expérience
Programme MFI retour d'expérienceProgramme MFI retour d'expérience
Programme MFI retour d'expérience
 
How to communicate with Smart things?
How to communicate with Smart things?How to communicate with Smart things?
How to communicate with Smart things?
 
Build a lego app with CocoaPods
Build a lego app with CocoaPodsBuild a lego app with CocoaPods
Build a lego app with CocoaPods
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
 
Project Entourage
Project EntourageProject Entourage
Project Entourage
 

Unwind segue by benoit capallere

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.