देखें नियंत्रक प्रोग्रामिंग गाइड राज्यों इस बारे में दृश्य नियंत्रक के उपयोग:कस्टम दृश्य नियंत्रकों का उपयोग करते हुए एक ही दृश्य के विभिन्न भागों का प्रबंधन करने के पदानुक्रम
प्रत्येक कस्टम दृश्य नियंत्रक वस्तु आपके द्वारा बनाए गए के सभी प्रबंधन के लिए जिम्मेदार है एक दृश्य में विचार पदानुक्रम। iPhone अनुप्रयोगों में, एक दृश्य पदानुक्रम में विचारों पारंपरिक रूप से पूरे स्क्रीन, कवर लेकिन आईपैड अनुप्रयोगों में वे केवल स्क्रीन के एक हिस्से को कवर कर सकते हैं। एक दृश्य नियंत्रक और उसके दृश्य पदानुक्रम में विचारों के बीच एक-से-एक पत्राचार कुंजी डिजाइन विचार है। आप कई कस्टम दृश्य नियंत्रकों उपयोग नहीं करना चाहिए ही दृश्य पदानुक्रम के विभिन्न भागों का प्रबंधन करने के। इसी तरह, आप सामग्री के कई स्क्रीन लायक प्रबंधित करने का एकल कस्टम दृश्य नियंत्रक ऑब्जेक्ट का उपयोग नहीं करना चाहिए।
मैं समझता हूँ कि अगर हम का उपयोग करके कई कस्टम दृश्य नियंत्रक के एक दृश्य के कुछ हिस्सों डिफ़ॉल्ट तरीकों की तरह (एक मुख्य दृश्य है जो बदले में एक दृश्य के नियंत्रक द्वारा किया जाता है की subviews प्रबंधन करने के लिए यानी एक दृश्य नियंत्रक) को नियंत्रित करने के:
didReceiveMemoryWarnings
viewWillAppear
viewWillDisappear
viewDidUnload
इत्यादि नहीं कहा जाएगा।
इसके अलावा, क्या कोई अन्य ठोस कारण है कि हम कई दृश्य नियंत्रक नहीं का उपयोग करना चाहिए के लिए एक दृश्य के संबंधित subviews प्रबंधन करने के लिए है?
नोट:: आप एक से अधिक subareas में एक दृश्य के पदानुक्रम विभाजित करना चाहते हैं और अलग से हर एक को प्रबंधित करते हैं तो सामान्य नियंत्रक वस्तुओं का उपयोग करें (कस्टम
प्रलेखन भी कोई वैकल्पिक समाधान जो पढ़ता के रूप में प्रदान करते हैं NSObject से उतरने वाली वस्तुएं नियंत्रक ऑब्जेक्ट्स को देखने के बजाय प्रत्येक उपर्य का प्रबंधन करें। फिर सामान्य नियंत्रक ऑब्जेक्ट्स को प्रबंधित करने के लिए एक नियंत्रक ऑब्जेक्ट देखें।
लेकिन क्यों कई दृश्य नियंत्रकों को प्राथमिकता नहीं दी जानी चाहिए करने के लिए के रूप में कोई जिक्र नहीं है। मेरा प्रश्न है:
क्यों हम इसे इस तरह से नहीं पसंद करते हैं चाहिए?
मुझे चिंतित है क्योंकि मैं अपने विचारों को प्रबंधित करने के लिए UIViewController के उप-वर्ग का उपयोग करना पसंद करता हूं क्योंकि मैं उन्हें प्रत्येक बार निब से लोड करता हूं और मैं प्रत्येक दृश्य नियंत्रकों के लिए nibs को अलग करता हूं। परियोजना के बाद के चरणों में परिवर्तनों को पूरा करना आसान हो जाता है। क्या यह गलत है? क्या मुझे अपनी प्रोग्रामिंग शैली बदलनी चाहिए, या यह ठीक है अगर मैं इस दृष्टिकोण से आगे बढ़ूं?
धन्यवाद,
राज
हां यह किया जा सकता है, मैं एक NSObject सबक्लास बना सकता हूं और इसे उस निब के लिए फ़ाइल के स्वामी के रूप में नामित कर सकता हूं। लेकिन मैं सोच रहा था कि क्या ऐसा कोई अन्य विशिष्ट कारण नहीं है कि ऐसा क्यों न करें। ऑब्जेक्ट की आपकी व्याख्या "भारी" होने के कारण अब तक पर्याप्त है। –
ठीक है, मुझे लगता है कि यह काफी बेकार है। चूंकि आपने जो एकमात्र कारण दिया है उन्हें आईबी में अलग करना था, और यह एनएसओब्जेक्ट के साथ किया जा सकता है। मुझे नहीं लगता कि आप किसी भी UIViewController के तरीकों का उपयोग करेंगे, तो इस विशिष्ट ऑब्जेक्ट को उपclass क्यों करें? मेरा मतलब है कि आप किसी अन्य यूआईआरस्पोन्डर सबक्लास (जैसे UIView, या UIButton) को भी उपclass कर सकते हैं, लेकिन चूंकि आपके द्वारा उपयोग की जाने वाली एकमात्र रोचक चीज़ आईबीओलेट है, आपको ऐसी विशिष्ट वस्तु की आवश्यकता नहीं है। – Julien
यूप, बहुत सच है। माना। –