ارسال البيانات بين الView Controllers - الجزء الأول
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في أغلب الأحيان، عندما تقوم بتصميم برنامج يحتوي على أكثر من شاشة View Controller، ستحتاج لإرسال البيانات من شاشة لأخرى (سواء للأمام أو الخلف) ليكتمل تصميم البرنامج.
في هذه المقالة، سنستعرض احدى اسهل الطرق لارسال البيانات من شاشة الى شاشة تالية، سنسرسل بيانات من انواع مختلفة String, Int, UIImage.
أولا/ بناء المشروع
1: قم بانشاء مشروع جديد من نوع Single View Application بأي اسم ترغبه
2: أضف View Controller جديدة الى الStoryboard
3: قم بتحديد الView Controller الأولى واختر Embed In > Navigation Controller
4: أضف الأدوات المطلوبة (Text Field, Image View, Button) كما في الصورة
5: أنشئ ملف Cocoa Touch Class جديد باسم SecondVC واضفه الى الView Controller الثانية
عند الضغط على الView Controller الثانية، تأكد من اضافة "SecondVC" في خانتي الClass والStoryboard ID كما في الصورة التالية
6: لإضافة الIBOutlets للView Controller الأولى قم بفتح الAssistant Editor للStoryboard والViewController.swift
7: مع الضغط على control، قم بسحب الأدوات الى الأيمن واضافتها كIBOutlets : (صورة متحركة، قم بالنقر عليها لمشاهدة الAnimation)
8: عند اضافة الButton تأكد من اضافته كAction وليس كOutlet
9: الآن قم بعمل نفس الشيء مع الشاشة الأخرى، واضف الImage والLabel كOutlets
ثانيا/ كتابة الكود
أولا قم باضافة التعديلات التالية على الكلاس الثاني (SecondVC) كما في الصورة
قمنا بانشاء متغيرات في الكلاس الثاني، لتكون مستعدة لاستقبال البيانات من الكلاس الأول
وحالما يبدأ عرض الشاشة، سيقوم السطرين المضافين الى الميثود ()viewDidLoad بعرض هذه البيانات الى المستخدم
الآن، قم باضافة الكود التالي في داخل الميثود ()sendBtnTapped في الكلاس الأول
let myVC = storyboard?.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
myVC.stringPassed = textField.text!
myVC.imagePassed = imageView.image!
navigationController?.pushViewController(myVC, animated: true)
في السطر الأول، قمنا بانشاء instance جديدة من الView Controller الثانية
في السطر الثاني والثالث، استخدمنا هذه الinstance لتمرير المعلومات من الكلاس الأول الى المتغيرات التي أنشأناها في الكلاس الثاني
وأخيرا في السطر الرابع، قمنا بطلب الانتقال من الشاشة الأولى الى الشاشة الثانية (أو بمعنى أدق، عرض الشاشة الثانية فوق الشاشة الأولى)
بقي أن تضيف صورة الى الUIImageView في الشاشة الأولى باستخدام الStoryboard
قمت أنا باضافة لوقو أبل كصورة تجريبية:
الآن قم بتشغيل البرنامج، وأضف اي نص في الText Field واضغط على الزر لمشاهدة النتيجة: (صورة متحركة، قم بالنقر عليها لمشاهدة الAnimation)
في الجزء الثاني سنتعرف بإذن الله على طريقة أخرى لارسال البيانات من كلاس لآخر.
بحفظ الله ورعايته.
التعليقات (0)
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !