سؤال

نعم.هذا هو التحدي.

لدي عرض جدول داخل وحدة تحكم التنقل.

أقوم بدفعه من الجذر، حيث لدي إجراء إضافة يسمح لي بإضافة سجل جديد.هذا يعمل بشكل جيد.

الآن ما حاولت القيام به هو إضافة عرض الجدول هذا إلى عرض شريط علامات التبويب (بدون وحدة تحكم شريط علامات التبويب التي لن تعمل) ولكن داخل نفس وحدة التحكم في التنقل.

إذن ما أريد القيام به هو هذا:الجذر > TabBarView (تحميل طريقة عرض الجدول) > إضافة سجل جديد.

تكمن المشكلة في سياق الكائن المُدار، وقد حصلت على الرسالة الكاملة "لا يمكن العثور على خطأ في الكيان" ولكن ليس لدي أي فكرة عن كيفية إصلاحها.

لقد تمكنت من جعل وحدة التحكم في العرض المشروط AddRecord تظهر من tabBarView، ولكنها تقدم نفسها بدون شريط تنقل، بينما إذا حاولت إضافة سجل في tableView المنفرد (خارج شريط التبويب) فلا توجد مشكلة.

أقوم الآن باستدعاء الأساليب الخاصة بي من أزرار navigationBar الخاصة بـ TabBarView، وتوجيهها إلى طرق عرض الجداول.

أعلم أنه يجب استدعاء الأساليب الخاصة بي من tabBarView بدلاً من عرض الطاولة الفعلي الآن، ويتم تشغيلها، لكنني لا أعرف كيفية إدارة MOC عندما تكون في tabView.

أوه، ويعتمد هذا على وصفات وكتب البيانات الأساسية، لذلك عندما يتم تشغيل طريقة إضافة السجل، فإنها تقوم بإنشاء MOC جديد لإنشائه، ثم يتم إعادة دمجه مرة أخرى في MOC الرئيسي عند الانتهاء.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

يبدو أن لديك مشكلتين.

  1. خطأ "لا يمكن العثور على الكيان" - يعتمد هذا على سياق الكائن المُدار الذي تستخدمه.إذا قمت بإنشاء MOC منفصل لإدارة الكائن الذي تقوم بتحريره (وهي فكرة جيدة بالمناسبة)، فتأكد من تعيين منسق متجر دائم له.هذه هي الطريقة التي يكتشف بها MOC الأشياء المتوفرة.إذا كنت تستخدم MOC الذي تم إنشاؤه في App Delegate، فتأكد من كتابة اسم الكيان بشكل صحيح.
  2. لا يوجد شريط تنقل في الورقة - عندما تقوم بدفع وحدة تحكم العرض إلى وحدة تحكم التنقل، يتم ذلك navigationItem يتم استخدامه لملء شريط التنقل.عند تقديم وحدة تحكم العرض كورقة، يتم عرض وحدة تحكم العرض فقط.لم يتم تضمينه في وحدة تحكم الملاحة.لكي يتم عرض عنصر التنقل، ستحتاج إلى إنشاء وحدة تحكم تنقل جديدة باستخدام وحدة تحكم العرض الخاصة بك كجذر، ثم تقديم عرض وحدة التحكم في التنقل.

نصائح أخرى

وفيما يتعلق بإدارة التغيير الرئيسية، ينبغي أن تكون وجهات النظر ووحدات التحكم غير ذات صلة.احصل على مرجع إلى MOC في أي وحدة تحكم تستخدمها وقم بتشغيلها باستخدام MOC.إذا قام مفوض التطبيق الخاص بك بإنشاء MOC الرئيسي، فاجعله ملكًا لذلك المفوض وقم بالوصول إليه من العرض أو وحدة تحكم علامة التبويب.

لا أتابع تمامًا مشكلة التنقل التي تواجهها، ولكن إذا لم يكن هناك شريط تنقل عندما تحتاج إليه، أعتقد أنك بحاجة إلى إنشاء وإضافة UINavigationController في مكان ما حيث تقوم بإضافة فئة فرعية UIViewController.اجعل الفئة الفرعية هي جذر UINavigationController الجديد ثم ضع وحدة التحكم في علامة التبويب أو أي شيء آخر.

يجب ألا يعتمد سياق الكائن المُدار (MOC) على التنقل أو طرق العرض.إنه جزء من النموذج.(على الرغم من أنه كما تعلم، فإن MOC الثاني لعرض التحرير القابل للإلغاء كان أن تعتمد على التنقل إلى الحد الذي تقوم بإنشائه ليستخدمه المحرر.)

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