2016-01-12 12 views
9

मैं स्विफ्ट में कोडित आईओएस के लिए एक गेम पर काम कर रहा हूं। मैंने यह पता लगाने का एक तरीका खोजने का प्रयास किया है कि ऐप पृष्ठभूमि मोड में प्रवेश करता है या अन्य कारणों से बाधित होता है, उदाहरण के लिए एक फोन कॉल लेकिन कुछ भी नहीं मिल सकता है। मैं यह कैसे करुं?पृष्ठभूमि में प्रवेश करने वाले आईओएस ऐप का पता लगाएं

+0

आपके आवेदन प्रतिनिधि में देखने का प्रयास करें। – Bamsworld

+2

'UIAplplicationDelegate' के लिए दस्तावेज़ देखें। –

उत्तर

20

स्विफ्ट 3 या बाद में

आप के लिए UIApplicationWillResignActiveNotification

NotificationCenter.default.addObserver(self, selector: #selector(willResignActive), name: .UIApplicationWillResignActive, object: nil) 

आपके विचार नियंत्रक को एक पर्यवेक्षक जोड़ सकते हैं और एक चयनकर्ता विधि जोड़ सकते हैं आपके व्यू कंट्रोलर को जब आपके ऐप को उस अधिसूचना प्राप्त होती है तो निष्पादित किया जाएगा:

@objc func willResignActive(_ notification: Notification) { 
    // code to execute 
} 
+0

धन्यवाद! ** स्विफ्ट 4 ** के लिए, 'func' से पहले' @ objc' जोड़ें। –

5

ऐप्स का पता लगाने के लिए पृष्ठभूमि में प्रवेश करती है, तो आप AppDelegate.m में जाँच कर सकते हैं आवेदन प्रतिनिधि विधि

लगता है applicationDidEnterBackground

इस विधि कहा जाता हो जाएगा एक बार एप्लिकेशन को पृष्ठभूमि में प्रवेश करती है। (AppDelegate.m डिफ़ॉल्ट रूप से कहा जाता है)

+0

यह केवल तभी आपको बताएगा जब ऐप पृष्ठभूमि में प्रवेश कर चुका था - इस घटना के बीच कुछ विलंबता होगी, और विधि को बुलाया जाएगा। –

+1

हां, बिल्कुल एप्लिकेशन WillResignActive संभावित उत्तर, +1 @AlexBlundell: अच्छा काम। – Suresh

0

UIApplicationDeletegate के अपने उदाहरण में परिभाषित प्रतिनिधि तरीकों पर एक नजर डालें। विशेष रूप से उपयोगी होगा निम्नलिखित:

- (void)applicationWillResignActive:(UIApplication *)application 

इस विधि बताने के लिए अपने ऐप को पता है इसके बारे राज्य निष्क्रिय करने के लिए सक्रिय रूप से स्थानांतरित करने के लिए है कि कहा जाता है। यह कुछ प्रकार के अस्थायी बाधाओं (जैसे आने वाली फोन कॉल या एसएमएस संदेश) के लिए हो सकता है या जब उपयोगकर्ता ऐप छोड़ देता है और यह पृष्ठभूमि स्थिति में संक्रमण शुरू करता है। निष्क्रिय स्थिति में एक ऐप चलना जारी रहता है लेकिन आने वाले कार्यक्रमों को उत्तरदाताओं को प्रेषित नहीं करता है।

से एप्पल प्रलेखन लिया - here

3

Swift3

let notificationCenter = NotificationCenter.default 
    notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: Notification.Name.UIApplicationWillResignActive, object: nil) 


func appMovedToBackground() { 
    print("App moved to background!") 
} 
संबंधित मुद्दे