سؤال

قد يكون هذا أساسي جدا، لكنني لا أستطيع معرفة ما يجب القيام به، شكرا بذلك استجابة ...

أنا باستخدام NavigationController وهي حاليا في المستوى الثاني في المكدس. هنا أقوم بتعيين قيمة سلسلة واستخدام popviewcontrolleranimated للعودة إلى المستوى الأول في المكدس.

ما قد يكون أفضل حل لاستخدام قيمة السلسلة من المستوى الثاني في المكدس؟ لقد حاولت تحديد قيمة في المستوى الأول يدويا في المستوى الثاني، لكن يجب أن أفعل شيئا خاطئا ...

شكرًا!

تحرير: I.m very new to both objective-c and C in general so iما زلت مرتبك قليلا :(

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

المحلول

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

نصائح أخرى

لن يكون من الأفضل استخدام نمط مندوب؟ يمكنك تحديد عرض المستوى الأعلى الخاص بك كمندوب لرؤية المستوى الثاني؛ يمكنك تعيين خاصية المفوض لوحدة التحكم في المستوى الثاني قبل دفعها على المكدس.

بمجرد تحديد السلسلة، قبل فحص وحدة التحكم في المستوى الثاني، اتصل بأسلاك المفوضة بالسلسلة كوسيطة لها.

ستكون ميزة ذلك أنه لا يزال يعمل حتى لو كان لديك مثيلات متعددة لوحدة تحكم المستوى الثاني (على سبيل المثال في واجهة مبوبة).

إنه ليس أفضل حل، لكنه يعمل:

[[self.navigationController.viewControllers objectAtIndex:0] setSmt:@"123"];
[self.navigationController popViewControllerAnimated:YES];

سيتم تغيير قيمة "SMT" في وحدة تحكم العرض الأصل.

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