سؤال

وبلدي التطبيق القائم على tabBarController لديها العديد من علامات التبويب. لكل منها مخصصة viewController الصف، والفرق الوحيد هو الطريقة التي يتم تهيئة المثيل. هل هناك طريقة لجعل واجهة البناء يرسل علامات تبويب مختلفة مخصصة المعلمات ال init؟

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

وأي اقتراحات؟

وشكرا، كيلسو

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

المحلول

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

إذا كنت تحتاج إلى تهيئة قبل استدعاء viewWillAppear:، يمكنك القيام بذلك في awakeFromNib، وهو حق مكفول ليتم استدعاؤها بعد أن تم تحميل جميع الأشياء ولقد تم ربط جميع المنافذ إلى أهدافهم.

إذا كنت تريد أن تفعل التهيئة حتى قبل ذلك، يمكنك القيام بذلك عن طريق تجاوز initWithCoder: (انظر بروتوكول NSCoding للتوثيق). أنا لا أعرف إذا تم توثيقه في أي مكان، ولكن هذا هو المعينة تهيئة للكائنات التي فك الشفرة من الأرشيف.

في كل ما سبق، فلن تكون قادرة على الحصول على المعلمات، ولكن في القانون يجب أن تكون قادرا على الوصول إلى كل ما تحتاجه مع بعض الاستخدام الحكيم للمتغيرات العالمية. يمكنك أيضا استخدام [[UIApplication sharedApplication] delegate] للوصول إلى كائن التطبيق المفوض.

نصائح أخرى

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

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