मैं पृष्ठभूमि में होने की अवधि के बाद उपयोगकर्ताओं को अपने ऐप से लॉक करना चाहता हूं। मैं इसे AppDelegate के applicationWillEnterForeground
(और applicationWillResignActive
में संग्रहीत समय की तुलना में) में पकड़ रहा हूं। यदि टाइमआउट अवधि से कम कोई कार्रवाई नहीं होती है। अगर समय समाप्ति की अवधि मैं फोन की तुलना में अधिक:एप्लिकेशन से पहले बदलाव देखें WillEnterForeground
[_navigationController popToRootViewControllerAnimated:NO];
जो उपयोगकर्ता वापस रूट दृश्य में लाता है।
यह एक दृश्य रुकावट के साथ पूरी तरह से ठीक काम करता है। पूर्व दृश्य (जिसे उपयोगकर्ता निष्क्रिय होने पर उपयोगकर्ता देख रहा था) रूट पर पॉप करने से पहले बहुत संक्षिप्त रूप से प्रकट होता है। परीक्षण में ऐसा लगता है कि दृश्य applicationWillEnterForeground
से पहले दिखाई देता है।
केवल सोचा मैं लिया है सब कुछ पहले इस तरह के एक भरा आयत के साथ दृश्य obscuring द्वारा के रूप में निष्क्रिय जा रहा है, को छिपाने के लिए है। यह मुझे एक गंदे हैक की तरह गंध करता है, इसलिए मैं सोच रहा हूं कि एक बेहतर तरीका है।
मैं भी यही अंतिम परिणाम तक पहुंचने के लिए अलग अलग तरीके के लिए खुला रहा हूँ। धन्यवाद!
कहाँ वास्तव में आप से popToRootViewController विधि बुला रहे हैं? – TheBlack
@TheBlack: मैं एप्लिकेशन प्रतिनिधि के 'आवेदन WillEnterForeground' विधि में '[_navigationController popToRootViewControllerAnimated: NO]' को कॉल कर रहा हूं। –
यदि आप अनुप्रयोग WillResignActive में व्यू कंट्रोलर पॉप अप करते हैं, तो आपकी समस्या हल हो जाएगी लेकिन यह आपकी अवधारणा में फिट नहीं है। वैसे भी, आवेदन में VCs पॉपिंग WillResignActive यह करने के लिए सही जगह है। मेरा समाधान हमेशा वीसी पॉप करना था और अगर उपयोगकर्ता कुछ अंतराल में ऐप पर वापस आ गया तो उन्हें पुनर्स्थापित करना था। – TheBlack