Saya memiliki array string yang ingin saya gunakan untuk judul tombol di UIActionSheet. Sayangnya, argumen otherButtonTitles: dalam pemanggilan metode menggunakan daftar panjang variabel dari string, bukan array.
Jadi bagaimana saya bisa memasukkan judul-judul ini ke dalam UIActionSheet? Solusi yang saya lihat disarankan adalah dengan mengirimkan nil ke otherButtonTitles :, lalu tentukan judul tombol satu per satu dengan menggunakan addButtonWithTitle :. Tetapi ini memiliki masalah memindahkan tombol "Batal" ke posisi pertama di UIActionSheet daripada yang terakhir; Saya ingin menjadi yang terakhir.
Apakah ada cara untuk 1) meneruskan array sebagai pengganti daftar variabel string, atau sebagai alternatif 2) memindahkan tombol batal ke bagian bawah UIActionSheet?
Terima kasih.
sumber
Jawaban:
Saya membuat ini berfungsi (Anda hanya perlu, ok dengan tombol biasa, dan tambahkan saja setelah:
sumber
cancelButton
bukan merah. ItudestructiveButton
merah.[UIActionSheet addButtonWithTitle]
tampaknya tidak disetel dengan benarfirstOtherButtonIndex
(yang seharusnya digunakan dalam delegasiactionSheet:clickedButtonAtIndex:
daripada hardcoding 0 atau hal serupa). Menjijikkan dengan mengubah menjadiNSArray
menjadiva_list
juga tidak terdengar seperti solusi yang bagus. :-( API ini sangat jelek.Satu catatan kecil: [actionSheet addButtonWithTitle:] mengembalikan indeks tombol itu, jadi agar aman dan "bersih" Anda dapat melakukan ini:
sumber
destructiveButtonIndex
untuknyaMengambil jawaban Jaba dan Nick dan memperluasnya sedikit lebih jauh. Untuk memasukkan tombol penghancur ke dalam solusi ini:
sumber
Ada versi cepat untuk tanggapannya:
Untuk mendapatkan nilai yang dipilih, tambahkan delegasi ke ViewController Anda:
Dan terapkan metode "clickedButtonAtIndex"
sumber