ฉันอยากจะแนะนำวิธีการอื่นในการแก้ไขปัญหานี้ แทนที่จะใช้ตัวควบคุมการนำทางเพื่อเปิดตัวควบคุมมุมมองให้ใช้การแบ่งส่วนย่อย โซลูชันนี้มีข้อดีเพียงเล็กน้อย แต่สำคัญจริง ๆ :
- ผู้ควบคุมจุดเริ่มต้นสามารถกลับไปที่ตัวควบคุมปลายทางอื่น ๆ (ไม่ใช่แค่ตัวควบคุมก่อนหน้า) โดยไม่ทราบอะไรเกี่ยวกับปลายทาง
- ส่วนย่อยของพุชและป๊อปถูกกำหนดไว้ในกระดานเรื่องราวดังนั้นจึงไม่มีรหัสการนำทางในตัวควบคุมมุมมองของคุณ
คุณสามารถค้นหารายละเอียดเพิ่มเติมได้ในUnwind Segues ทีละขั้นตอนStep-by-Step วิธีอธิบายได้ดีกว่าในลิงค์เดิมรวมถึงวิธีส่งข้อมูลกลับ แต่ที่นี่ฉันจะอธิบายสั้น ๆ
1) ไปที่ปลายทาง (ไม่ใช่แหล่งกำเนิด) ดูคอนโทรลเลอร์และเพิ่มส่วนขยายที่ผ่อนคลาย:
@IBAction func unwindToContact(_ unwindSegue: UIStoryboardSegue) {
//let sourceViewController = unwindSegue.source
// Use data from the view controller which initiated the unwind segue
}
2) การลาก CTRL จากตัวควบคุมมุมมองของตัวเองไปที่ไอคอนทางออกในการควบคุมมุมมองแหล่งกำเนิด:
3) เลือกฟังก์ชั่นคลายที่คุณเพิ่งสร้างเมื่อไม่นานมานี้:
4) เลือกทำต่อคลายและให้ชื่อ:
5) ไปที่สถานที่ใด ๆ ของแหล่งกำเนิดมุมมองตัวควบคุมและเรียกส่วนต่อเนื่องผ่อนคลาย:
performSegue(withIdentifier: "unwindToContact", sender: self)
ฉันพบวิธีการจ่ายเงินจำนวนมากเมื่อการนำทางของคุณเริ่มซับซ้อน
ฉันหวังว่านี่จะช่วยให้ใครบางคน