عندما أقوم بفتح UIView مخصص من UITableViewController، كيف يمكنني إغلاق العرض المخصص والعودة إلى عرض الجدول؟
-
06-07-2019 - |
سؤال
أنا أستخدم أ UITableViewController
للحصول على قائمة في اللعبة.يفتح عرض الجدول وحدة تحكم العرض الخاصة بي UIView
الذي يظهر اللعبة.عندما تنتهي اللعبة UIView
تم إخطاري (وهو ما يدمر مبادئ MVC نوعًا ما) ومن هناك فقدت نوعًا ما.
أسئلة:
- يمكن أ
UIView
التواصل مع وحدة التحكم الخاصة به؟كيف؟ - هل يمكن لوحدة تحكم واحدة التحدث إلى الشخص الذي بدأها؟كيف؟
- كيف يمكنني الانتقال بين كل هذه الشبكة المعقدة من طرق العرض ووحدات التحكم بأمان؟
المحلول
استخدم بروتوكول المفوض هنا.يمكن لـ UIView للعبتك المخصصة استخدام ملف
delegate
طرق الملكية والاتصال على هذا المندوب عند حدوث الأحداث (انتهت اللعبة، توقفت اللعبة مؤقتًا، تم إغلاق العرض، وما إلى ذلك).إليك مشاركة رائعة حول استخدام المفوضين: كيف أقوم بإنشاء مفوضين في Objective-C؟أوصي باستخدام UINavigationController.لا تحتاج بالضرورة إلى إظهار شريط التنقل، ولكن إذا قمت بدمج وحدات التحكم في العرض الخاصة بك في وحدة تحكم التنقل، فيمكنك الوصول إلى
-pushViewControllerAnimated:
و-popViewControllerAnimated:
مما يجعل من السهل حقًا التنقل بين مستويات وحدات تحكم العرض المتداخلة.فائدة أخرى لـ UINavigationController - ستحصل على رسم متحرك لطيف للشرائح عند التبديل بين طرق العرض.
هناك آليات أخرى تابعة لجهات خارجية قد تفضلها على آليات UIKit UINavigationController/UIViewController.تفحص ال مشروع ثلاثة 20, ، وخاصة فئة TTNavigationCenter.