แยกส่วน UI ที่นำมาใช้ซ้ำได้ในโกโก้ทัช - มุมมองเทียบกับคอนโทรลเลอร์ - ควรทำอย่างไรบ้าง?

สมมติว่าฉันกำลังออกแบบแอป iPad ที่แสดงหน้าจอให้กับผู้ใช้ หน้าจอประกอบด้วย "ตัวควบคุม" หลายตัวเพื่อประโยชน์ของตัวอย่างนี้ อาจเป็นป้ายกำกับธรรมดาที่มีเครื่องหมาย +/- ที่แสดงค่าจำนวนเต็มเพิ่ม/ลดที่แสดงโดยป้ายกำกับ ตรวจสอบให้แน่ใจว่าค่าไม่เกินจำนวนสูงสุดที่กำหนดไว้สำหรับการควบคุมแต่ละรายการ (ตัวเลขขึ้น /down control แต่อาจเป็นอะไรก็ได้ที่มีตรรกะง่ายๆ) เนื่องจากจำนวนเต็มถูกจัดการ ค่าอ่านอย่างเดียวบางค่าจึงถูกคำนวณ (ป้ายกำกับ) ยิ่งไปกว่านั้น "การควบคุม" แต่ละรายการควรตอบสนองต่อท่าทางการแตะ (และเช่นเพิ่มมูลค่า 10) คำถามที่ฉันต้องการถามคือ - ฉันจะออกแบบหน้าจอดังกล่าวในแง่ของ MVC ที่ใช้ในการสัมผัสโกโก้ได้อย่างไร เนื่องจากตัวควบคุมมุมมองที่จัดการหน้าจอเรียกว่า MainController:

  • การควบคุมตัวเลขขึ้น / ลงควรแยกมุมมองที่มีตรรกะทั้งหมด (ละเมิดรูปแบบ MVC อย่างใด) ที่เพิ่มใน MainController.view หรือไม่
  • การควบคุมตัวเลขขึ้น / ลงควรแยก viewControllers แยกต่างหาก (พร้อมมุมมองที่แนบมากับพวกเขาแน่นอน) ที่มีตรรกะทั้งหมด (แนวทางที่สมเหตุสมผลมากกว่าในแง่ของ MVC - ฉันถูกต้องหรือไม่)
  • การสัมผัส/ท่าทางได้รับการประมวลผลบนตัวควบคุมมุมมองหรือระดับมุมมองหรือไม่

person adrin    schedule 20.09.2010    source แหล่งที่มา
comment
หากคุณพบว่าคำตอบของฉันมีประโยชน์และตรงกับคำถามของคุณ โปรดทำเครื่องหมายว่าเป็นคำตอบในการแก้ปัญหาเพื่อเพิ่มอัตราการยอมรับของคุณ (ขณะนี้คุณได้รับเพียง 41%)   -  person Till    schedule 14.01.2011


คำตอบ (1)


  • การควบคุมขึ้น/ลงควรเต็มไปด้วยฟังก์ชันผ่าน View-Controller (MainController) ของหน้าจอ
  • ไม่จำเป็นต้องมี View-Controllers เพิ่มเติมในระดับการควบคุมนั้น - อันที่จริง Apple แนะนำว่าสำหรับสถานการณ์ทั่วไปดังกล่าวมีเพียง View-Controller เดียวเท่านั้นที่มีอยู่ (MainController)
  • การสัมผัส/ท่าทางจะถูกประมวลผลในระดับ View-Controller (MainController)
person Till    schedule 20.09.2010
comment
ขอบคุณสำหรับคำตอบ! หมายความว่าถ้าฉันต้องการมีตัวควบคุมขึ้น/ลง 5 ตัวฉันต้องเพิ่ม 10 ปุ่มและ 10 ช่องและ 10 IBActions ให้กับวิวคอนโทรลเลอร์นั่นดูเหมือนจะเป็นรูปแบบการต่อต้าน แต่บางทีฉันอาจมองข้ามบางสิ่งบางอย่าง :) หรือบางทีฉันควรแยกออก การควบคุมขึ้น/ลงเพื่อดู? (ถ้าใช่ ฉันสามารถออกแบบมุมมองใน Iterface Builder ได้หรือไม่) - person adrin; 21.09.2010
comment
หากคุณต้องการอ่านและจัดการค่าของตัวควบคุมอย่างง่ายดาย คุณจะต้องสร้างช่องทางสำหรับการควบคุมนั้น ใช่แล้ว มี 10 ช่องที่ดูสมเหตุสมผลและควรทำให้โค้ดของคุณสามารถอ่านได้ คุณสามารถให้ส่วนควบคุมทั้งหมดแชร์การกระทำเดียวกันได้ การควบคุมจะถูกส่งผ่านไปยังการดำเนินการ (ผู้ส่ง) แต่จากนั้นคุณอาจมีโค้ดเพื่อกำหนดว่าการควบคุมใดถูกใช้งาน เพื่อให้คุณสามารถปรับฟิลด์ที่เกี่ยวข้องได้ (หาก homeLoanCtrl เปลี่ยนแปลง ให้แก้ไขฟิลด์ homeLoanTxt...) ดังนั้น บางที uiactions ที่แตกต่างกันก็ไม่ได้แย่นัก - person Dave; 06.10.2010
comment
การสนทนาที่คล้ายกันมาก: stackoverflow.com/questions/ 1264296/ - person Dave; 06.10.2010