2010-04-18 17 views
7

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

परेशानी है, न तो (आईडी) init या (id) initWithFrame: (CGRect) कस्टम दृश्य पर फ्रेम विधियों को बुलाया जा रहा है।

यूआईवीयू पर कौन सी विधि को एनआईबी से तत्काल किया जाता है? मैं केवल व्यू कंट्रोलर और व्यूडिडलोड विधि का उपयोग करता हूं सिवाय इसके कि यह विशेष दृश्य कई अलग-अलग एनआईबी पर दिखाई देता है।

उत्तर

14

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

+0

बिल्कुल सही! किसी कारण से मैंने सोचा था कि जागरूकता FivNib UIViewController तक सीमित थी - एक बार फिर, यह साबित करता है कि कभी-कभी यह सब कुछ आंखों की दूसरी जोड़ी लेता है :) –

+1

@retailevolved: हाँ, जब एक nib फ़ाइल लोड हो जाती है, तो nib फ़ाइल में प्रत्येक ऑब्जेक्ट अनारक्षित (प्रॉक्सी ऑब्जेक्ट्स को छोड़कर - क्योंकि उनको वास्तव में निब से अनारक्षित नहीं किया जाता है) सभी वस्तुओं को अनारक्षित किए जाने के बाद एक जागृत किया जाएगा FromNib संदेश और सभी आउटलेट वायर्ड किए गए हैं। –

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

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