كيفية تمرير البيانات في Segwind (سريع 3)

اثنين من أجهزة التحكم عرض وسيجو الاسترخاء

تعتبر السلسلة غير المريحة (تُعرف أيضًا باسم "مقطع الخروج") عبارة عن سلسلة تسمح للمستخدم بالانتقال مرة أخرى من جهاز التحكم في العرض الحالي إلى وحدة تحكم العرض السابقة.

تخيل: لدي جهازي تحكم في طريقة العرض وسجلات viewController1 لـ viewController2. يقوم المستخدم بإنشاء أو تحرير البيانات في viewController2 وأريد إرسال هذه البيانات مرة أخرى إلى viewController1. سيجو الاسترخاء يمكن أن تساعد في هذا.

لتوضيح كيفية استخدام شريحة استرخاء لتمرير البيانات بين اثنين من أجهزة عرض viewControllers ، قمت بإنشاء تطبيق يسرد شخصيات Mad Man المفضلة.

Segue: MadMenTableViewController -> AddCharacterViewController

وحدة تحكم العرض الأول ، MadMenTableViewController ، يعرض جدول عرض الأحرف. يعمل زر "+" في شريط التنقل الخاص بـ MadMenTableViewController على تمييز مستخدم إلى AddCharacterViewController حيث يمكن للمستخدم إدخال اسم شخصية مفضلة في حقل نص ودفع زر "حفظ" في شريط التنقل الخاص به.

استرخاء Segue: AddCharacterViewController -> MadMenTableViewController

عندما أقوم "بالاسترخاء" في السلسلة من AddCharacterViewController لأخذ اسم الحرف الجديد (سلسلة من textField) مرة أخرى إلى MadMenTableViewController ، أريد أن أكون قادراً على تمرير اسم الحرف هذا باستخدام segind للاسترخاء حتى يمكن إضافته إلى الصفيف من الشخصيات جنون الرجال وعرضها في الجدول.

إعداد لوحة العمل

في Storyboard ، من MadMenTableViewController ، قمت بالتحكم في زر التنقل "+" (الإضافة) الخاص بي إلى طريقة العرض AddCharacterViewController واخترت "إظهار" (على سبيل المثال ، Push) كنوع السلسلة.

AddCharacterViewController الإعداد

في AddCharacterViewController ، لدي خاصية مخزنة تسمى الحرف والتي ستحتوي على اسم الحرف الجديد الذي أدخله المستخدم (من textField). لقد تجاوز الإعداد (بالنسبة إلى طريقة segue :) وقم بفك النص من textField وقم بتعيين قيمته إلى خاصية الحرف. في هذه الوظيفة ، سيتم تمرير قيمة الحرف إلى MadMenTableViewController عندما يكون الملف غير صحيح.

MadMenTableViewController الإعداد

في صف MadMenTableViewController الخاص بي ، أكتب وظيفةIBAction ، أو undFromFromAddVC (_ المرسل :) والتي سيتم استدعاؤها عندما يقوم AddCharacterViewController بفك السيرة (عند النقر فوق الزر "حفظ" ويتم إنهاء AddCharacterViewController.

أعلاه ، على السطر رقم 21 ، لديّ وظيفة undindFromAddVC. هذه الوظيفة هي ما سيحصل على سلسلة اسم الحرف وإضافته إلى مجموعة المفضلات الحالية لـ Mad Men.

في السطر رقم 23 ، أتحقق مما إذا كان المصدر الذي يقوم بفك السيج هو AddCharacterViewController المطلوب.

في السطر رقم 24 ، إذا كان بالفعل هو AddCharacterViewController الخاص بي ، فأنا أزل ملف senderVC هذا وقم بالوصول إلى خاصية شخصيته (سلسلة) (تذكر ، كانت هذه السلسلة تحمل اسم شخصيتنا).

في السطر رقم 25 ، يتم إلحاق هذه الخاصية المميزة بمجموعة madMenCharacters الخاصة بنا.

في السطر رقم 27 ، أتأكد من تحديث الجدول ، نظرًا لأن لدينا الآن عنصرًا جديدًا في صفيفتنا يجب عرضه.

توصيل "حفظ" بـ "الخروج من AddCharacterViewController"

مرة أخرى في Storyboard ، هناك شيء أخير يجب القيام به.

اسحب عنصر التحكم الزر "حفظ" في AddCharacterViewController إلى أيقونة الخروج (الرمز البرتقالي في أقصى اليمين). عندما تتركك ، يجب أن تظهر طريقةIBAction في MadMenTableViewController. حدده ، وبناء وتشغيل التطبيق الخاص بك.

يتم تمرير البيانات من وحدة تحكم العرض الثانية الخاصة بي الآن إلى وحدة تحكم العرض الأول الخاص بي! كان من السهل جدا!

نعم ، كان الأمر بهذه السهولة حقًا.

تحقق من ذلك:

ريبو لهذا المشروع ويمكن الاطلاع هنا.

مصادر:

باستخدام Segues - وثائق أبل