Computer >> Máy Tính >  >> Lập trình >> IOS

Thiết lập một đại biểu đơn giản để giao tiếp giữa hai bộ điều khiển chế độ xem trong iPhone

Trong bài viết này, bạn tìm hiểu về đại biểu và tạo đại biểu. Trước hết,

Đại biểu là gì?

Delegate là một thuật ngữ đơn giản đề cập đến giao tiếp giữa các đối tượng. Đó là một cách đơn giản để kết nối các đối tượng và giao tiếp giữa chúng.

Ủy nhiệm hoạt động như thế nào?

Một đại biểu được tạo với sự trợ giúp của giao thức. Một giao thức được khai báo trong lớp, trong đó một số sự kiện sẽ xảy ra, sẽ thông báo cho các lớp khác. Trong giao thức, chúng ta viết khai báo hàm và nó được định nghĩa bên trong lớp gọi.

Làm cách nào để tạo một đại biểu?

Chúng tôi sẽ làm điều này với sự trợ giúp của một dự án mẫu.

Các bước thực hiện -

  • Tạo một lớp, đặt tên là FirstViewController, tạo một lớp khác và gọi nó là SecondViewController. Tạo bộ điều khiển Chế độ xem tương ứng trong bảng phân cảnh.

  • Khai báo một giao thức trong SecondViewController, Một giao thức được khai báo bên ngoài bất kỳ lớp nào hoặc các đối tượng khác.

protocol SecondViewControllerDelegate {
   func buttonPressedInVC2()
}
  • Trong SecondViewController, Tạo một đối tượng tùy chọn của đại biểu mà chúng tôi vừa tạo,

var delegate: SecondViewControllerDelegate?
  • Chúng ta cần gọi hàm được khai báo trong giao thức, khi một số sự kiện xảy ra trong SecondViewController, hãy tạo một sự kiện xảy ra khi một nút được nhấn trong bộ điều khiển chế độ xem thứ hai.

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

Tất cả điều này là bắt buộc trong SecondViewController, bây giờ chúng ta hãy làm việc trên FirstViewController.

  • Chúng tôi cần tuân thủ / triển khai FirstViewController thành SecondViewControllerDelegate và nó sẽ tự động yêu cầu bạn thêm các sơ khai giao thức.

extension FirstViewController: SecondViewControllerDelegate {
   func buttonPressedInVC2() { }
}
  • Bên trong giao thức mà chúng tôi vừa triển khai, chúng tôi nên viết mã mà chúng tôi muốn thực thi khi hành động ủy quyền này xảy ra.

    Hãy tạo một nhãn trong FirstViewController và thay đổi văn bản của nó khi phương thức ủy quyền được gọi.

extension FirstViewController: SecondViewControllerDelegate {
   func buttonPressedInVC2() {
      self.lblOne.text = "Delegate Implemented"
   }
}
  • Một bước cuối cùng còn lại là đối tượng ủy nhiệm trong SecondViewController là tùy chọn và sẽ là 0 cho đến khi nó được gán, Vì vậy, trong FirstViewController, chúng tôi sẽ gán đối tượng đó khi đi từ FirstViewController sang SecondViewController.

    Hãy tạo một nút trong FirstViewController cho việc đó.

@IBAction func goToNextVC(_ sender: Any) {
   let vc = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
   vc.delegate = self
   self.navigationController?.pushViewController(vc, animated: true)
}
  • Và nếu bạn chưa nhận ra, chúng tôi cần nhúng FirstViewController vào Bộ điều khiển điều hướng. Hãy chạy ứng dụng và xem nó hoạt động như thế nào.

Thiết lập một đại biểu đơn giản để giao tiếp giữa hai bộ điều khiển chế độ xem trong iPhone