Saya belum pernah membuat antarmuka pengguna lengkap menggunakan UI toolkit, jadi saya tidak punya banyak pengalaman dengannya. Inilah yang menurut saya harus berhasil.
Setiap UIView, dan ini UIWindow, memiliki properti subviews , yang merupakan NSArray yang berisi semua subview.
Subview pertama yang Anda tambahkan ke tampilan akan menerima indeks 0, dan indeks berikutnya 1 dan seterusnya. Anda juga bisa mengganti addSubview:dengan insertSubview: atIndex:atauinsertSubview:aboveSubview: dan metode semacam itu yang dapat menentukan posisi subview Anda dalam hierarki.
Jadi periksa kode Anda untuk melihat tampilan mana yang Anda tambahkan pertama kali ke UIWindow Anda. Itu akan menjadi 0, yang lainnya akan menjadi 1.
Sekarang, dari salah satu subview Anda, untuk mencapai subview lainnya Anda akan melakukan hal berikut:
UIView * theOtherView = [[[self superview] subviews] objectAtIndex: 0];
// or using the properties syntax
UIView * theOtherView = [self.superview.subviews objectAtIndex:0];
Beri tahu saya jika itu berhasil untuk kasus Anda!
(di bawah penanda ini adalah jawaban saya sebelumnya):
Jika tampilan perlu berkomunikasi satu sama lain, tampilan harus melakukannya melalui pengontrol (yaitu, menggunakan model MVC yang populer ).
Saat Anda membuat tampilan baru, Anda dapat memastikannya mendaftar sendiri dengan pengontrol.
Jadi tekniknya adalah memastikan pandangan Anda terdaftar dengan pengontrol (yang dapat menyimpannya dengan nama atau apa pun yang Anda inginkan dalam Kamus atau Array). Anda dapat meminta pengontrol mengirim pesan untuk Anda, atau Anda bisa mendapatkan referensi ke tampilan dan berkomunikasi dengannya secara langsung.
Jika view Anda tidak memiliki link ke controller (yang mungkin terjadi) maka Anda dapat menggunakan metode singletons dan / atau class untuk mendapatkan referensi ke controller Anda.