Saya sedang mempresentasikan UIAlertView
kepada pengguna dan saya tidak tahu bagaimana menulis handler. Ini adalah usaha saya:
let alert = UIAlertController(title: "Title",
message: "Message",
preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Okay",
style: UIAlertActionStyle.Default,
handler: {self in println("Foo")})
Saya mendapatkan banyak masalah di Xcode.
Dokumentasinya mengatakan convenience init(title title: String!, style style: UIAlertActionStyle, handler handler: ((UIAlertAction!) -> Void)!)
Seluruh blok / penutupan sedikit di atas kepala saya saat ini. Setiap saran sangat dihargai.
sumber
{alert in println("Foo")}
,,{_ in println("Foo")}
dan{println("Foo")}
juga harus berfungsi.alert.addAction(UIAlertAction(title: "Okay", style: .default) { _ in println("Foo") })
Fungsi adalah objek kelas satu di Swift. Jadi jika Anda tidak ingin menggunakan closure, Anda juga bisa mendefinisikan fungsi dengan tanda tangan yang sesuai lalu meneruskannya sebagai
handler
argumen. Mengamati:sumber
Anda dapat melakukannya sesederhana ini menggunakan swift 2:
Semua jawaban di atas benar, saya hanya menunjukkan cara lain yang bisa dilakukan.
sumber
Mari kita asumsikan bahwa Anda menginginkan UIAlertAction dengan judul utama, dua tindakan (simpan dan buang) dan tombol batal:
Ini berfungsi untuk swift 2 (Xcode Version 7.0 beta 3)
sumber
Perubahan sintaks di swift 3.0
sumber
Di Swift 4:
sumber
ini adalah bagaimana saya melakukannya dengan xcode 7.3.1
// buat tombol
// menambahkan tombol ke kontrol peringatan
// seluruh kode, kode ini akan menambahkan 2 tombol
sumber
buat peringatan, diuji di xcode 9
dan fungsinya
sumber
Di Swift
Dalam Tujuan C
sumber