Le estoy presentando un UIAlertView
al usuario y no puedo entender cómo escribir el controlador. Este es mi intento:
let alert = UIAlertController(title: "Title",
message: "Message",
preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Okay",
style: UIAlertActionStyle.Default,
handler: {self in println("Foo")})
Tengo un montón de problemas en Xcode.
La documentación dice convenience init(title title: String!, style style: UIAlertActionStyle, handler handler: ((UIAlertAction!) -> Void)!)
Los bloques / cierres completos están un poco por encima de mi cabeza en este momento. Cualquier sugerencia es muy apreciada.
fuente
{alert in println("Foo")}
,{_ in println("Foo")}
y{println("Foo")}
también debería funcionar.alert.addAction(UIAlertAction(title: "Okay", style: .default) { _ in println("Foo") })
Las funciones son objetos de primera clase en Swift. Entonces, si no desea usar un cierre, también puede simplemente definir una función con la firma adecuada y luego pasarla como
handler
argumento. Observar:fuente
Puede hacerlo tan simple como esto usando swift 2:
Todas las respuestas anteriores son correctas, solo estoy mostrando otra forma en que se puede hacer.
fuente
Supongamos que desea una acción UIAlertAction con título principal, dos acciones (guardar y descartar) y el botón cancelar:
Esto funciona para swift 2 (Xcode versión 7.0 beta 3)
fuente
Cambio de sintaxis en swift 3.0
fuente
En Swift 4:
fuente
así es como lo hago con xcode 7.3.1
// crea el botón
// agregando el botón al control de alerta
// el código completo, este código agregará 2 botones
fuente
crear alerta, probado en xcode 9
y la función
fuente
En Swift
En el objetivo C
fuente