Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

ตั้งค่าผู้รับมอบสิทธิ์อย่างง่ายเพื่อสื่อสารระหว่างตัวควบคุมมุมมองสองตัวใน iPhone


ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับผู้รับมอบสิทธิ์และการสร้างผู้รับมอบสิทธิ์ ก่อนอื่นเลย

ผู้รับมอบสิทธิ์คืออะไร

ผู้รับมอบสิทธิ์เป็นคำง่ายๆ ที่อ้างถึงการสื่อสารระหว่างอ็อบเจ็กต์ เป็นวิธีง่ายๆ ในการเชื่อมต่อวัตถุและการสื่อสารระหว่างกัน

ผู้รับมอบสิทธิ์ทำงานอย่างไร

ผู้รับมอบสิทธิ์ถูกสร้างขึ้นด้วยความช่วยเหลือของโปรโตคอล มีการประกาศโปรโตคอลในคลาส ซึ่งจะมีเหตุการณ์เกิดขึ้น ซึ่งควรแจ้งให้คลาสอื่นทราบ ในโปรโตคอล เราเขียนการประกาศฟังก์ชันและกำหนดไว้ภายในคลาสการเรียก

จะสร้างผู้รับมอบสิทธิ์ได้อย่างไร

เราจะทำสิ่งนี้ด้วยความช่วยเหลือของโครงการตัวอย่าง

ขั้นตอนการดำเนินการ -

  • สร้างคลาส ตั้งชื่อเป็น FirstViewController สร้างคลาสอื่น และเรียกมันว่า SecondViewController สร้างตัวควบคุมการดูที่เกี่ยวข้องในกระดานเรื่องราว

  • ประกาศโปรโตคอลใน SecondViewController โปรโตคอลจะถูกประกาศนอกคลาสหรืออ็อบเจกต์อื่นๆ

protocol SecondViewControllerDelegate {
   func buttonPressedInVC2()
}
  • ใน SecondViewController ให้สร้างออบเจ็กต์ทางเลือกของผู้ได้รับมอบสิทธิ์ที่เราเพิ่งสร้างขึ้น

var delegate: SecondViewControllerDelegate?
  • เราจำเป็นต้องเรียกใช้ฟังก์ชันที่ประกาศไว้ในโปรโตคอล เมื่อเหตุการณ์บางอย่างเกิดขึ้นใน SecondViewController ให้สร้างเหตุการณ์ที่เกิดขึ้นเมื่อกดปุ่มในตัวควบคุมมุมมองที่สอง

@IBAction func buttonTapped(_ sender: UIButton) {
   self.delegate?.buttonPressedInVC2()
   self.navigationController?.popViewController(animated: true)
}

ทั้งหมดนี้จำเป็นใน SecondViewController ตอนนี้เรามาทำงานกับ FirstViewController กัน

  • เราจำเป็นต้องปฏิบัติตาม/ปรับใช้ FirstViewController กับ SecondViewControllerDelegate แล้วระบบจะขอให้คุณเพิ่มต้นขั้วโปรโตคอลโดยอัตโนมัติ

extension FirstViewController: SecondViewControllerDelegate {
   func buttonPressedInVC2() { }
}
  • ภายในโปรโตคอลที่เราเพิ่งดำเนินการ เราควรเขียนโค้ดที่เราต้องการดำเนินการเมื่อการดำเนินการของผู้รับมอบสิทธิ์นี้เกิดขึ้น

    มาสร้างป้ายกำกับใน FirstViewController และเปลี่ยนข้อความเมื่อเรียกวิธีการมอบหมาย

extension FirstViewController: SecondViewControllerDelegate {
   func buttonPressedInVC2() {
      self.lblOne.text = "Delegate Implemented"
   }
}
  • ขั้นตอนสุดท้ายที่เหลือคือ วัตถุผู้รับมอบสิทธิ์ใน SecondViewController เป็นทางเลือกและจะเป็นศูนย์จนกว่าจะได้รับมอบหมาย ดังนั้นใน FirstViewController เราจะกำหนดวัตถุนั้นในขณะที่เปลี่ยนจาก FirstViewController เป็น SecondViewController

    มาสร้างปุ่มใน FirstViewController กัน

@IBAction func goToNextVC(_ sender: Any) {
   let vc = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
   vc.delegate = self
   self.navigationController?.pushViewController(vc, animated: true)
}
  • และถ้าคุณยังไม่รู้ เราต้องฝัง FirstViewController ใน Navigation Controller เรียกใช้แอปและดูว่ามันทำงานอย่างไร

ตั้งค่าผู้รับมอบสิทธิ์อย่างง่ายเพื่อสื่อสารระหว่างตัวควบคุมมุมมองสองตัวใน iPhone