এই নিবন্ধে, আপনি প্রতিনিধি এবং প্রতিনিধি তৈরি সম্পর্কে শিখবেন। প্রথমত,
প্রতিনিধি কি?
প্রতিনিধি একটি সহজ শব্দ যা বস্তুর মধ্যে যোগাযোগ বোঝায়। এটি বস্তুর সংযোগ এবং তাদের মধ্যে যোগাযোগের একটি সহজ উপায়।
প্রতিনিধি কিভাবে কাজ করে?
প্রোটোকলের সাহায্যে একটি প্রতিনিধি তৈরি করা হয়। ক্লাসে একটি প্রোটোকল ঘোষণা করা হয়, যার ভিতরে কিছু ঘটনা ঘটবে, যা অন্যান্য ক্লাসকে অবহিত করা উচিত। প্রোটোকলে আমরা ফাংশনের ঘোষণা লিখি এবং এটি কলিং ক্লাসের ভিতরে সংজ্ঞায়িত করা হয়।
কীভাবে একজন প্রতিনিধি তৈরি করবেন?
আমরা একটি উদাহরণ প্রকল্পের সাহায্যে এটি করব৷
৷সঞ্চালনের পদক্ষেপগুলি -
-
একটি ক্লাস তৈরি করুন, এটিকে FirstViewController হিসাবে নাম দিন, অন্য একটি ক্লাস তৈরি করুন এবং এটিকে সেকেন্ডভিউ কন্ট্রোলার বলুন। স্টোরিবোর্ডে তাদের নিজ নিজ ভিউ কন্ট্রোলার তৈরি করুন।
-
সেকেন্ডভিউ কন্ট্রোলারে একটি প্রোটোকল ঘোষণা করুন, একটি প্রোটোকল কোনো শ্রেণি বা অন্যান্য বস্তুর বাইরে ঘোষণা করা হয়।
protocol SecondViewControllerDelegate { func buttonPressedInVC2() }
-
সেকেন্ডভিউ কন্ট্রোলারে, আমরা এইমাত্র তৈরি করা প্রতিনিধির একটি ঐচ্ছিক বস্তু তৈরি করুন,
var delegate: SecondViewControllerDelegate?
-
আমাদের প্রোটোকলে ঘোষিত ফাংশনটিকে কল করতে হবে, যখন সেকেন্ডভিউ কন্ট্রোলারে কিছু ইভেন্ট ঘটে, আসুন একটি ইভেন্ট তৈরি করি যা দ্বিতীয় ভিউ কন্ট্রোলারে একটি বোতাম চাপলে ঘটবে৷
@IBAction func buttonTapped(_ sender: UIButton) { self.delegate?.buttonPressedInVC2() self.navigationController?.popViewController(animated: true) }
সেকেন্ডভিউ কন্ট্রোলারে এই সব প্রয়োজন, এখন ফার্স্টভিউ কন্ট্রোলারে কাজ করা যাক।
-
আমাদের সেকেন্ডভিউ কন্ট্রোলার ডেলিগেটে ফার্স্টভিউ কন্ট্রোলারকে মেনে/বাস্তবায়ন করতে হবে এবং এটি স্বয়ংক্রিয়ভাবে আপনাকে প্রোটোকল স্টাব যোগ করতে বলবে।
extension FirstViewController: SecondViewControllerDelegate { func buttonPressedInVC2() { } }
-
প্রোটোকলের ভিতরে আমরা এইমাত্র প্রয়োগ করেছি যখন এই প্রতিনিধি ক্রিয়াটি ঘটে তখন আমরা যে কোডটি চালাতে চাই তা লিখতে হবে৷
আসুন ফার্স্টভিউ কন্ট্রোলারে একটি লেবেল তৈরি করি এবং যখন প্রতিনিধি পদ্ধতি কল করা হয় তখন এটির পাঠ্য পরিবর্তন করি।
extension FirstViewController: SecondViewControllerDelegate { func buttonPressedInVC2() { self.lblOne.text = "Delegate Implemented" } }
-
একটি শেষ ধাপ বাকি আছে, সেকেন্ডভিউ কন্ট্রোলারে প্রতিনিধি বস্তুটি ঐচ্ছিক এবং এটি বরাদ্দ না করা পর্যন্ত শূন্য থাকবে, তাই FirstViewController-এ আমরা FirstViewController থেকে SecondViewController-এ যাওয়ার সময় সেই বস্তুটিকে বরাদ্দ করব।
এর জন্য ফার্স্টভিউ কন্ট্রোলারে একটি বোতাম তৈরি করা যাক।
@IBAction func goToNextVC(_ sender: Any) { let vc = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController vc.delegate = self self.navigationController?.pushViewController(vc, animated: true) }
-
এবং যদি আপনি এখনও এটি উপলব্ধি না করেন তবে আমাদের একটি নেভিগেশন কন্ট্রোলারে FirstViewController এম্বেড করতে হবে। আসুন অ্যাপটি চালান এবং দেখুন কিভাবে এটি কাজ করে।