2011-12-04 13 views
58

जब दृश्य मैन्युअल भरी हुई है, डेवलपर जब यह initializations पर आपका नियंत्रण में रहता है, हम क्या प्रारंभकर्ता कॉल करने के लिए, क्या चर निर्धारित करने का निर्णय आदिस्टोरीबोर्ड के माध्यम से लोड होने पर दृश्य कैसे प्रारंभ किया जाता है?

जब दृश्य स्टोरीबोर्ड segue से भरी हुई है ... क्या है कि करने के लिए होता प्रारंभकर्ता? वेरिएबल्स को कहां सेट किया जाना चाहिए, एक बार दृश्य लोड होने के बाद मैं उपलब्ध होना चाहूंगा?

कृपया मुझे अनुक्रम को समझने में मेरी सहायता करें। यहां बनाए गए वर्ग का उदाहरण कैसा है, जो इसे बनाता है और हम कैसे हस्तक्षेप कर सकते हैं और इसे हमारी पसंद के अनुसार स्थापित करने में मदद कर सकते हैं?

उत्तर

89

जब कोई दृश्य निब या स्टोरीबोर्ड से लोड होता है, तो यह -initWithCoder: विधि कहा जाता है। -initWithFrame: की तरह, -initWithCoder: UIView के लिए एक नामित प्रारंभकर्ता है। यदि आप UIView सबक्लास के लिए कोई कस्टम प्रारंभ करने जा रहे हैं, तो आपको यह सुनिश्चित करना चाहिए कि यह दोनों विधियों के लिए होता है। एक आम तकनीक एक सामान्य प्रारंभिक विधि को जोड़ना है जिसे आप -initWithFrame: और -initWithCoder: दोनों से कॉल करते हैं। अधिक विस्तृत विवरण के लिए my answerCustom view and implementing init method? देखें।

ध्यान दें कि -initWithFrame: के लिए दस्तावेज़ बताते हैं:

आप इंटरफ़ेस बिल्डर का उपयोग करते हैं अपने इंटरफेस डिजाइन करने के लिए, इस विधि नहीं कहा जब आपके विचार वस्तुओं बाद में निब फ़ाइल से लोड किए गए हैं है। एक nib फ़ाइल में ऑब्जेक्ट्स का पुनर्गठन किया जाता है और फिर को उनके initWithCoder का उपयोग करके प्रारंभ किया जाता है: विधि, जो के गुणों को संशोधित करता है ताकि nib फ़ाइल में संग्रहीत गुणों से मेल खा सकें।

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

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