سؤال

أخطط لتنفيذ مهام متعددة في تطبيقي.أستطيع أن أرى العديد من الطرق هنا للقيام بذلك في AppDelegate مثل applicationWillResignActive, applicationDidEnterBackground, applicationWillEnterForeground, ...

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

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

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

هل يمكنك مساعدتي في فهم طريقة تنفيذ الأشياء في تلك الأساليب ?

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

المحلول

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

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(appHasGoneInBackground:)
                                             name:UIApplicationDidEnterBackgroundNotification
                                           object:nil];

لا تنس إطلاق سراح المستمع عندما لا تحتاج إلى الاستماع إليه بعد الآن :

[[NSNotificationCenter defaultCenter] removeObserver:self];

وأفضل من أفضل ، يمكنك أن تلعب بنفس الطريقة مع الإخطارات التالية :

  • UIApplicationDidEnterBackgroundNotification
  • UIApplicationWillEnterForegroundNotification
  • UIApplicationWillResignActiveNotification
  • UIApplicationDidBecomeActiveNotification

نصائح أخرى

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

كعملية تعلم ، لماذا لا تضع NSLog في تلك الأساليب لترى متى يتم طردهم؟ Genacodicetagpre

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