Les UIAlertView
et les UIActionSheet
font parti des plus vieux composants d’UIKit
. Dans iOS 8, Apple a revu la façon dont nous les créons et les utilisons grâce à une nouvelle classe : UIAlertController
. Cette classe fournis une API moderne et unifié pour travailler avec ces contrôleurs. Ici nous allons voir la façon dont elle peut améliorer la capacité d’adaptation de l’interface utilisateur ainsi que la lisibilité du code.
Pour commencer voici un example de code :
@IBAction func afficherAlertControllerAction(sender: UIButton) {
let controller = UIAlertController(
title: "Comment allez vous ?",
message: "Comment vous sentez vous ?",
preferredStyle: .ActionSheet
)
controller.addAction(UIAlertAction(title: "Pas envie de répondre", style: .Cancel, handler: nil))
controller.addAction(UIAlertAction(title: "Bien", style: .Default) { action in
// Tant mieux
})
controller.addAction(UIAlertAction(title: "Mal", style: .Default) { action in
// Mince
})
controller.popoverPresentationController?.sourceRect = sender.bounds
controller.popoverPresentationController?.sourceView = sender
presentViewController(controller, animated: true, completion: nil)
}
Tout d’abord nous créons le controller et nous définissons le style comme .ActionSheet
. Nous pourrions aussi utiliser .Alert
à la place et nos actions serait affichés dans une alerte.
Ensuite nous ajoutons des actions, chacun avec une fonction de retour qui est appelée quand l’action est sélectionnée. Si aucune méthode n’est définie (nil
), il ne se passera rien si vous sélectionné l’action.
Après nous lions la sourceRect
et sourceView
au bouton sender
qui est à l’origine de l’action. Cela permet à la flèche de notre « action sheet » de pointer dans le bon sens.
Pour finir nous affichons le contrôleur comme n’importe quel autre contrôleur.
Conclusion
J’espère que ce petit tuto vous aidera dans le développement de vos applications.