عندما أقوم بفتح UIView مخصص من UITableViewController، كيف يمكنني إغلاق العرض المخصص والعودة إلى عرض الجدول؟

StackOverflow https://stackoverflow.com/questions/1029703

سؤال

أنا أستخدم أ UITableViewController للحصول على قائمة في اللعبة.يفتح عرض الجدول وحدة تحكم العرض الخاصة بي UIView الذي يظهر اللعبة.عندما تنتهي اللعبة UIView تم إخطاري (وهو ما يدمر مبادئ MVC نوعًا ما) ومن هناك فقدت نوعًا ما.

أسئلة:

  1. يمكن أ UIView التواصل مع وحدة التحكم الخاصة به؟كيف؟
  2. هل يمكن لوحدة تحكم واحدة التحدث إلى الشخص الذي بدأها؟كيف؟
  3. كيف يمكنني الانتقال بين كل هذه الشبكة المعقدة من طرق العرض ووحدات التحكم بأمان؟
هل كانت مفيدة؟

المحلول

  1. استخدم بروتوكول المفوض هنا.يمكن لـ UIView للعبتك المخصصة استخدام ملف delegate طرق الملكية والاتصال على هذا المندوب عند حدوث الأحداث (انتهت اللعبة، توقفت اللعبة مؤقتًا، تم إغلاق العرض، وما إلى ذلك).إليك مشاركة رائعة حول استخدام المفوضين: كيف أقوم بإنشاء مفوضين في Objective-C؟

  2. أوصي باستخدام UINavigationController.لا تحتاج بالضرورة إلى إظهار شريط التنقل، ولكن إذا قمت بدمج وحدات التحكم في العرض الخاصة بك في وحدة تحكم التنقل، فيمكنك الوصول إلى -pushViewControllerAnimated: و -popViewControllerAnimated: مما يجعل من السهل حقًا التنقل بين مستويات وحدات تحكم العرض المتداخلة.

  3. فائدة أخرى لـ UINavigationController - ستحصل على رسم متحرك لطيف للشرائح عند التبديل بين طرق العرض.

هناك آليات أخرى تابعة لجهات خارجية قد تفضلها على آليات UIKit UINavigationController/UIViewController.تفحص ال مشروع ثلاثة 20, ، وخاصة فئة TTNavigationCenter.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top