2016-02-25 7 views
5

मेरे ऐप्पल वॉच ऐप में WKInterfaceController के दो उप-वर्ग हैं। पहला वाला दूसरा प्रवेश द्वार है, इंटरफेस बिल्डर के साथ उनके रिश्तों nextPage हैं। प्रत्येक इंटरफ़ेस नियंत्रक में awakeWithContext, willActivate और didDeactivate विधि के लिए, मैंने ऐप लॉन्च करते समय उन्हें सभी मुद्रित किया।वॉच ऐप का जीवन चक्र क्या है?

और मैं इस उत्पादन मिल गया:

awakeWithcontext -> First 
awakeWithContext -> Second 
willActivate -> First 
willActivate -> Second 
didDeactivate -> Second 

और मैं अगले InterfaceController करने के लिए स्वाइप:

willActivate -> Second 
didDeactivate -> First 

तो अब सवाल यह है:

विल सभी awakeWithContext सभी InterfaceControllers की विधि वॉच ऐप में लॉन्च होने तक निकाल दिया जाएगा?

willActivate विधि के बारे में क्या?

उत्तर

0

awakeWithContext प्रारंभिकरण पर कॉल किया जाता है। लॉन्च पर आपके वॉच ऐप में आपके सभी पृष्ठों पर यह विधि कॉल की जाएगी।

willActivate कहा जाता है जब इंटरफ़ेस नियंत्रक प्रदर्शित होने वाला है। आपके दूसरे इंटरफ़ेस नियंत्रक के willActivate के बाद didDeactivate कहा जाता है, क्योंकि यह अगला पृष्ठ है जो ऑनस्क्रीन हो सकता है। यह प्रासंगिक डेटा के साथ अगले इंटरफ़ेस नियंत्रक को लोड करने में मदद के लिए होता है क्योंकि यह जल्द ही स्क्रीन पर आ सकता है।

इसलिए, आप एक 3 पेज इंटरफेस नियंत्रक था अगर इसके willActivatedidDeactivate द्वारा पीछा किया जब 2 इंटरफेस नियंत्रक परदे पर है ही कहा जाता है।

Apple DocwillActivate पर। घड़ी पर Page-based navigation स्पष्ट रूप से यह नहीं कह सकता है, लेकिन वे हमेशा पढ़ने में मदद करते हैं।

5

घड़ीओएस ऐप्स का जीवन चक्र नीचे वर्णित है।

awakeWithContext

जब पेज आरंभ, awakeWithContext बुलाया जाएगा। यह कॉल करने वाली पहली विधि है, और अभी तक कोई UI प्रदर्शित नहीं हुआ है।

आपको awakeWithContext में तालिका दृश्यों, गुणों को सेट करने आदि के लिए मॉडल सरणी अपडेट करने जैसे कुछ करना चाहिए। सरल विधि (init()) में शुरुआती लोगों के लिए इस विधि का एक समान काम है, लेकिन इस बार WKInterfaceController एस में।

अपने पहले प्रश्न का उत्तर:

awakeWithContext सभी पृष्ठों जैसे ही watchOS एप्लिकेशन लॉन्च होने पर बुलाया जाएगा।

willActivate

जब इंटरफेस नियंत्रक के बारे में प्रदर्शित करने के लिए है, willActivate बुलाया जाएगा।

आपको लेबल मान, क्रियाएं और वहां तत्वों से संबंधित कुछ भी अपडेट करना चाहिए।

अपने दूसरे प्रश्न का उत्तर:

willActivate शुरूआत watchOS एप्लिकेशन के रूप में जैसे ही सभी पृष्ठों पर बुलाया जाएगा, लेकिन awakeWithContext के साथ विपरीत में, इस फिर जैसे ही आप देखने के रूप में बुलाया जाएगा नियंत्रक (दूसरे शब्दों में, जब आप वांछित इंटरफ़ेस पर नेविगेट करते हैं)।

पहले बार एप्लिकेशन लॉन्च करने के लिए, सभी 'नियंत्रकों didDeactivate बुलाया जाएगा, वर्तमान को छोड़कर, और जब दूसरे करने के लिए जा रहा है, इसकी willActivate पहले didDeactivate को बुलाया जाएगा पहले एक पर बुलाया जा रहा है।

तो जीवन चक्र है:

1- सभी विचारों का awakeWithContext

2- सभी दृश्यों

3 सभी विचारों का didDeactivate, पहले एक को छोड़कर की willActivate (वर्तमान एक)

और दूसरा जब स्वाइप:

1-दूसरे दृश्य के 210

2- didDeactivate पहले दृश्य

संबंधित मुद्दे