การใส่วิดเจ็ต / มุมมองในไฟล์. xib แยกกันใช้งานได้และเหมาะสมโดยเฉพาะอย่างยิ่งหากคุณอาจต้องการอ้างอิงมุมมองเดียวกันนั้นจาก View Controllers หลายตัว
อย่างไรก็ตามบางครั้งคุณอาจต้องการดูมุมมอง / วิดเจ็ตเพิ่มเติมภายในกระดานเรื่องราวเดียวกันและเป็นไปได้ นี่คือวิธีที่คุณทำ:
เลือกตัวควบคุมมุมมองของคุณใน IB (คลิกที่แถบสีดำด้านล่างมุมมอง) จากนั้นลาก UIView จาก Object Library ลงในแถบสีดำ:
เมื่อมุมมองอยู่ในแถบสีดำจะมีการสร้างอินสแตนซ์เหมือนกับมุมมองอื่น ๆ ใน IB แต่จะไม่ถูกเพิ่มลงในลำดับชั้นมุมมองของคุณจนกว่าคุณจะทำเช่นนั้นในโค้ด เปลี่ยนคลาสของมุมมองให้ตรงกับคลาสย่อยของคุณเองหากจำเป็น:
คุณสามารถเชื่อมต่อกับตัวควบคุมมุมมองของคุณเช่นเดียวกับที่คุณเชื่อมต่อกับมุมมองอื่น ๆ :
มุมมองที่เพิ่มจะปรากฏในโครงร่างเอกสารของคุณและคุณสามารถเชื่อมโยงการดำเนินการและการอ้างอิงได้ด้วย
ตอนนี้ปัญหาที่ยังคงอยู่คือคุณไม่สามารถมองเห็นมุมมองได้จริงไม่ว่าคุณจะพยายามคลิกหรือดับเบิลคลิกกี่ครั้งก็ตามซึ่งจะทำให้จุดประสงค์ทั้งหมดของการวางไว้ในกระดานเรื่องราวเดียวกัน โชคดีที่มีวิธีแก้ปัญหาสองประการที่ฉันรู้
วิธีแก้ปัญหาแรกคือลากมุมมองจากแถบสีดำกลับไปที่มุมมองของตัวควบคุมมุมมองของคุณแก้ไขแล้วลากกลับเข้าไปในแถบสีดำเมื่อคุณทำเสร็จแล้ว นี่เป็นปัญหา แต่เชื่อถือได้
วิธีแก้ปัญหาอื่น ๆ นั้นค่อนข้างจู้จี้จุกจิกกว่า แต่ฉันชอบเพราะมันทำให้ฉันเห็นมุมมองทั้งหมดในเวลาเดียวกัน:
ลาก UITableView จาก Object Library ไปยังมุมมองที่เพิ่มเข้ามาใหม่
จากนั้นลาก UITableViewCell ลงใน UITableView นั้น
เมื่อคุณทำเช่นนั้นมุมมองของคุณจะปรากฏออกมาด้านข้างอย่างน่าอัศจรรย์ แต่คุณมี UITableView ที่คุณไม่ต้องการ คุณสามารถปรับขนาดเป็น 0x0 หรือจะลบออกก็ได้และ UIView ของคุณจะยังคงปรากฏอยู่
ในบางครั้งมุมมองรองจะถูกซ่อนอีกครั้งใน IB คุณสามารถทำขั้นตอนข้างต้นซ้ำได้หากคุณลบ UITableView หรือหาก UITableView ยังอยู่ในลำดับชั้นคุณเพียงแค่คลิกที่ UITableViewCell จากนั้นมุมมองจะปรากฏขึ้นอีกครั้ง
วิธีที่สองใช้ได้กับ UIViews แต่ไม่ค่อยดีสำหรับ UIToolbars และเป็นไปไม่ได้สำหรับ UIButtons ดังนั้นวิธีที่สะอาดที่สุดที่ฉันพบเมื่อคุณต้องการรวมมุมมองย่อยที่แตกต่างกันจำนวนมากคือการแนบ UIView รองเดียวกับตัวควบคุมมุมมองของคุณเป็นคอนเทนเนอร์ที่ ไม่เคยแสดงให้ใส่มุมมองรองทั้งหมดของคุณไว้ที่นั่นและใช้เคล็ดลับ UITableViewCell เพื่อทำให้ทุกอย่างมองเห็นได้ ฉันปรับขนาด UITableView จำลองของฉันเป็น 0x0 เพื่อให้มองไม่เห็น นี่คือภาพหน้าจอของลักษณะทั้งหมดร่วมกัน:
xib
สำหรับตัวควบคุมมุมมองของคุณแยกกันไม่ใช่ในสตอรี่บอร์ดหรือไม่?