Swift UITabBarItem sebagai UIButton

Saya mencoba menerapkan UITabBar dan sekarang saya tidak dapat mengambil panggilan balik dari suatu metode ketika suatu item dipilih. Apakah ada kemungkinan untuk membuat @IBAction func saja? Atau apakah saya perlu melakukan hal lain?


person Luca Archidiacono    schedule 17.08.2015    source sumber
comment
kemungkinan duplikat Dapatkan panggilan balik/ mengeksekusi beberapa kode ketika tab pada Tab Bar diklik   -  person nhgrif    schedule 17.08.2015


Jawaban (3)


Untuk mengimplementasikan tombol UITabBar, pengontrol tampilan Anda harus sesuai dengan protokol UITabBarDelegate. Anda perlu menerapkan:

Cepat:

func tabBar(_ tabBar: UITabBar, didSelectItem item: UITabBarItem!)

Tujuan-c:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

Anda juga perlu mengatur delegasi (tabBar.delegate = self) di viewDidLoad ViewController Anda

Sunting: Jawaban Swift 3:

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

}
person Floris M    schedule 17.08.2015

Pengontrol tampilan Anda harus mematuhi UITabBarDelegate dan menerapkan:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;

Metode ini dipanggil ketika pengguna memilih tab (yaitu UITabBarItem).

person Adam Waite    schedule 17.08.2015
comment
Apakah saya harus memanggil metode ini secara eksplisit dalam kode atau ketika saya mengimplementasikannya ke dalam UITabBarDelegate apakah metode ini akan dipanggil secara otomatis? - person Luca Archidiacono; 17.08.2015
comment
UITabBar akan mengirimkan pesan ini ke delegasinya ketika pengguna memilih tab. - person Adam Waite; 17.08.2015
comment
class MyClass: UITabBarItem, UITabBarDelegate { class MyClass: UITabBar, UITabBarControllerDelegate, UITabBarDelegate { Penerapan manakah yang benar? Apakah pengkodean ini juga benar: func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) { FYI Saya memutus kelas default dan menghubungkan dengan kelas khusus baru dan masih tidak berfungsi (di main.storyboard). - person Luca Archidiacono; 17.08.2015
comment
Mengapa Anda membuat subkelas UITabBarItem? - person Adam Waite; 17.08.2015
comment
Item bilah tab tidak boleh menjadi delegasi ke bilah tab yang ada. Anda mungkin memasukkan diri Anda ke dalam siklus penyimpanan. - person nhgrif; 17.08.2015
comment
@AdamWaite Saya baru mulai memprogram Swift 1 atau 2 minggu yang lalu jadi saya tidak tahu bahwa saya sedang membuat subkelas. Bagaimana cara memperbaikinya? - person Luca Archidiacono; 17.08.2015
comment
@nhgrif apa maksudmu dengan itu? bagaimana saya harus melakukannya lagi? Biarkan di kelas default? - Aku tidak memahaminya dengan jelas - person Luca Archidiacono; 17.08.2015
comment
Saya pikir Anda perlu mendapatkan buku dan mempelajari dasar-dasarnya sebelum melakukan hal lain. - person Adam Waite; 17.08.2015

Saya akhirnya memecahkan masalahnya. Saya mengalami beberapa masalah dengan kelas Delegator dan kelas normal. Ini memperbaiki masalah saya: tabBar.delegate = self di kelas Pengendali Utama

person Luca Archidiacono    schedule 17.08.2015