Ich präsentiere UIAlertView
dem Benutzer ein und kann nicht herausfinden, wie der Handler geschrieben wird. Das ist mein Versuch:
let alert = UIAlertController(title: "Title",
message: "Message",
preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Okay",
style: UIAlertActionStyle.Default,
handler: {self in println("Foo")})
Ich habe eine Reihe von Problemen mit Xcode.
Die Dokumentation sagt convenience init(title title: String!, style style: UIAlertActionStyle, handler handler: ((UIAlertAction!) -> Void)!)
Die ganzen Blöcke / Verschlüsse sind im Moment etwas über meinem Kopf. Jeder Vorschlag wird sehr geschätzt.
quelle
{alert in println("Foo")}
,,{_ in println("Foo")}
und{println("Foo")}
sollte auch funktionieren.alert.addAction(UIAlertAction(title: "Okay", style: .default) { _ in println("Foo") })
Funktionen sind in Swift erstklassige Objekte. Wenn Sie also keinen Abschluss verwenden möchten, können Sie auch einfach eine Funktion mit der entsprechenden Signatur definieren und diese dann als
handler
Argument übergeben. Beobachten:quelle
So einfach geht das mit Swift 2:
Alle obigen Antworten sind richtig. Ich zeige nur einen anderen Weg, der getan werden kann.
quelle
Nehmen wir an, Sie möchten eine UIAlertAction mit Haupttitel, zwei Aktionen (Speichern und Verwerfen) und der Schaltfläche Abbrechen:
Dies funktioniert für Swift 2 (Xcode Version 7.0 Beta 3)
quelle
Syntaxänderung in Swift 3.0
quelle
In Swift 4:
quelle
So mache ich es mit xcode 7.3.1
// Schaltfläche erstellen
// Hinzufügen der Schaltfläche zur Alarmsteuerung
// Der gesamte Code, dieser Code fügt 2 Schaltflächen hinzu
quelle
Alert erstellen, getestet in xcode 9
und die Funktion
quelle
In Swift
In Ziel C.
quelle