Je présente un UIAlertView
à l'utilisateur et je n'arrive pas à comprendre comment écrire le gestionnaire. Voici ma tentative:
let alert = UIAlertController(title: "Title",
message: "Message",
preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Okay",
style: UIAlertActionStyle.Default,
handler: {self in println("Foo")})
Je reçois un tas de problèmes dans Xcode.
La documentation dit convenience init(title title: String!, style style: UIAlertActionStyle, handler handler: ((UIAlertAction!) -> Void)!)
L'ensemble des blocs / fermetures est un peu au-dessus de ma tête pour le moment. Toute suggestion est très appréciée.
la source
{alert in println("Foo")}
,{_ in println("Foo")}
et{println("Foo")}
devrait également fonctionner.alert.addAction(UIAlertAction(title: "Okay", style: .default) { _ in println("Foo") })
Les fonctions sont des objets de première classe dans Swift. Donc, si vous ne voulez pas utiliser de fermeture, vous pouvez également simplement définir une fonction avec la signature appropriée, puis la passer comme
handler
argument. Observer:la source
Vous pouvez le faire aussi simplement que cela en utilisant swift 2:
Toutes les réponses ci-dessus sont correctes, je montre simplement une autre façon de faire.
la source
Supposons que vous vouliez une UIAlertAction avec le titre principal, deux actions (enregistrer et supprimer) et un bouton d'annulation:
Cela fonctionne pour Swift 2 (Xcode Version 7.0 beta 3)
la source
Changement de syntaxe dans Swift 3.0
la source
Dans Swift 4:
la source
voici comment je le fais avec xcode 7.3.1
// créer le bouton
// ajout du bouton au contrôle d'alerte
// tout le code, ce code ajoutera 2 boutons
la source
créer une alerte, testé dans xcode 9
et la fonction
la source
Dans Swift
Dans l'objectif C
la source