Saya menggunakan storyboard dan saya memiliki UITableView. Saya memiliki pengaturan segue yang mendorong dari tabel saya ke detail VC. Tetapi metode mana yang harus saya gunakan untuk menangani ini? Saya harus memberikan beberapa objek ke tampilan detail. Tapi apakah saya menggunakan didSelectRowAtIndex
atau -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
?
101
self.view
hanya berada disender
sini? Saya bahkan tidak bisa[self.view indexPathForSelectedRow]
bekerja, saya harus melakukannya[sender indexPathForSelectedRow];
tableView.indexPathForSelectedRow()
berisi nilai yang benar ketikaprepareFroSegue...
dipanggil:tableView(_:didSelectrowAtIndexPath:)
tidak dipanggil sampai nanti.Saya melakukan ini dan berhasil
sumber
Jika pengirimnya adalah UITableViewCell, Anda dapat meminta UITableView untuk melakukan kueri indexPath sel.
sumber
jika properti tableView Anda berada di kelas lain dan Anda hanya memiliki satu bagian , Anda dapat menggunakan
tag
properti untuk menyimpan baris sel seperti:Dan kemudian Anda dapat mengaksesnya karena
sender
sel yang sama dengan nilai baris di tag-nya:sumber
self.tableView.indexPathForSelectedRow
mengembalikan sel yang dipilih, tetapi tidak memisahkan sel pengirim, misalnya sel pengirim tidak dipilih (tindakan aksesori), atau dalam kasus pemilihan ganda. Cara terbaik adalah mendapatkan indexPath untuk pengirim segue:Di Swift:
sumber
Jika Anda menggunakan
prepareForSegue:
Anda dapat memeriksa siapa pengirimnya dan menjalankan kode yang berbedaMisalnya dengan sigap
sumber