mengekstraksi bagian UI yang dapat digunakan kembali di kakao sentuh - tampilan vs pengontrol - bagaimana cara melakukannya?

Katakanlah saya sedang merancang aplikasi iPad yang menyajikan layar kepada pengguna. Layar berisi beberapa "kontrol" yang untuk contoh ini dapat berupa label sederhana dengan tanda +/- yang menambah/mengurangi nilai bilangan bulat yang disajikan oleh label, memastikan bahwa nilainya tidak melebihi angka maksimal yang ditentukan untuk setiap kontrol (numerik ke atas /down control, tapi bisa berupa apa saja yang memiliki logika sederhana). Saat bilangan bulat dimanipulasi, beberapa nilai hanya baca dihitung (label). Selain itu, setiap "kontrol" harus merespons gerakan ketuk (dan misalnya meningkatkan nilai sebesar 10) Pertanyaan yang ingin saya tanyakan adalah - bagaimana saya harus mendesain layar seperti itu dalam kaitannya dengan MVC yang digunakan dalam kakao sentuh? Mengingat pengontrol tampilan yang mengelola layar disebut MainController:

  • Haruskah kontrol numerik atas/bawah menjadi tampilan terpisah yang berisi semua logika (entah bagaimana melanggar pola MVC) yang ditambahkan ke MainController.view?
  • Haruskah kontrol atas/bawah numerik menjadi viewController terpisah (tentu saja dengan tampilan terlampir) yang berisi semua logika (pendekatan yang lebih masuk akal dalam hal MVC - apakah saya benar?)
  • Apakah sentuhan/gerakan diproses pada pengontrol tampilan atau tingkat tampilan?

person adrin    schedule 20.09.2010    source sumber
comment
Jika menurut Anda jawaban saya bermanfaat dan cocok dengan pertanyaan Anda, harap tandai jawaban tersebut sebagai jawaban penyelesaian untuk meningkatkan tingkat penerimaan Anda (saat ini Anda hanya mendapat 41%)   -  person Till    schedule 14.01.2011


Jawaban (1)


  • Kontrol Atas/Bawah harus diisi dengan fungsi melalui View-Controller (MainController) layar
  • Tidak diperlukan View-Controller tambahan pada tingkat kontrol tersebut -- faktanya, Apple menyarankan bahwa untuk situasi umum seperti itu hanya ada satu View-Controller (MainController)
  • Sentuhan/Tamu diproses pada level View-Controller (MainController)
person Till    schedule 20.09.2010
comment
Terima kasih atas jawaban anda! Jadi apakah ini berarti jika saya ingin memiliki 5 kontrol atas/bawah, saya perlu menambahkan 10 tombol dan 10 outlet dan 10 IBActions ke viewcontroller? Sepertinya itu pola anti tapi mungkin saya mengabaikan sesuatu :) Atau mungkin haruskah saya mengekstrak kontrol atas/bawah ke tampilan? (Jika ya, bisakah saya mendesain tampilan itu sendiri di Iterface Builder) - person adrin; 21.09.2010
comment
Jika Anda ingin membaca & memanipulasi nilai kontrol dengan mudah, maka Anda akan membuat jalan keluar untuk kontrol tersebut. Jadi, ya, 10 outlet tampaknya masuk akal dan membuat kode Anda dapat dibaca. Anda dapat membuat semua kontrol berbagi tindakan yang sama. Kontrol akan diteruskan ke tindakan (pengirim), namun Anda mungkin memiliki kode untuk menentukan kontrol mana yang terkena sehingga Anda dapat menyesuaikan bidang terkait yang terkait. (Jika homeLoanCtrl berubah, ubah bidang homeLoanTxt...) Jadi, mungkin tindakan yang berbeda tidak terlalu buruk. - person Dave; 06.10.2010
comment
Diskusi yang sangat mirip: stackoverflow.com/questions/ 1264296/ - person Dave; 06.10.2010