2011-11-14 12 views
23

स्टोरीबोर्ड सुविधा का उपयोग करके आईओएस 5 में मैं एक कस्टम कंटेनर बनाना चाहता हूं जिसमें 2 ViewControllers इसमें एम्बेडेड होगा। उदाहरण के लिए, तालिका दृश्य नियंत्रक के साथ-साथ एक दृश्य नियंत्रक को एक ViewController में एम्बेड करें।आईओएस 5 में स्टोरीबोर्ड का उपयोग कर कस्टम व्यू कंट्रोलर कंटेनर कैसे बनाएं 5

है यही कारण है, एक दृश्य नियंत्रक 2 संबंध होगा:

  1. नियंत्रक देखने पर तालिका दृश्य नियंत्रक करने के लिए है जो बदले में 4 UIImage उस में देख सकते हैं या UIButton होगा

है स्टोरीबोर्ड की ड्रैग ड्रॉप सुविधा का उपयोग करके इस प्रकार के रिश्ते को संभवतः & प्रोग्रामेटिक रूप से नहीं बनाया जा रहा है?

+0

मुझे आपके उदाहरण में कोई समस्या है। CustomViewController viewDidLoad ईवेंट कभी नहीं निकाल दिया जाता है ... क्या यह सामान्य है? क्या इसे ठीक करने का कोई रास्ता है ? अन्यथा, यह वास्तव में एक अच्छी पोस्ट है! धन्यवाद। –

उत्तर

14

, आपको दृश्य को नियंत्रित करने के लिए केवल एक दृश्य नियंत्रक होना चाहिए। हालांकि, इस दृश्य नियंत्रक के पास दो अन्य दृश्य नियंत्रक हो सकते हैं जो आपके दृश्य पर विशेष सबव्यूज़ को नियंत्रित करते हैं। ऐसा करने के लिए आप अपने दृश्य दृश्य नियंत्रक में गुण बनाते हैं, आपके मामले में आपकी तालिका के लिए एक व्यू कंट्रोलर और आपके दृश्य के लिए। मैं चीजों को एकसाथ रखना चाहता हूं इसलिए मैं इन दोनों दृश्य नियंत्रक आउटलेट बना देता हूं और उन्हें इंटरफ़ेस बिल्डर में बना देता हूं। इंटरफ़ेस बिल्डर में उन्हें ऑब्जेक्ट लाइब्रेरी से ऑब्जेक्ट में खींचने के लिए और इसके प्रकार को प्रासंगिक व्यू कंट्रोलर पर सेट करें। इसे अपने दृश्य के दृश्य में बनाए गए उपयुक्त आउटलेट तक पहुंचाएं नियंत्रक - नोट: यह महत्वपूर्ण है अन्यथा अगर आप एआरसी का उपयोग कर रहे हैं और अपने ऐप को क्रैश करते हैं तो कंट्रोलर जारी किया जाएगा। फिर इन दृश्यों को कंट्रोलर को उस दृश्य तक हुक करें जिसे आप नियंत्रित करना चाहते हैं और आप कर चुके हैं।

वैकल्पिक रूप से आप अपने दृश्यों को तत्काल और आशा कर सकते हैं अपने दृश्यों में नियंत्रक देखें नियंत्रक को यह करना पसंद करना चाहिए।

उम्मीद है कि इससे मदद मिलती है।

संपादित करें: प्रतिबिंब पर यह एक अच्छा विचार नहीं है और वास्तव में एचआईजी के खिलाफ चला जाता है, आपको सामग्री की प्रत्येक स्क्रीन के लिए केवल एक व्यू कंट्रोलर बनाए रखना चाहिए और इसके बजाय एक उपयुक्त दृश्य वर्ग बनाने का प्रयास करें और इंटरैक्शन के साथ एकल दृश्य नियंत्रक सौदा करें विभिन्न विचारों के बीच।

+3

हम विचारों के लिए आउटलेट बना सकते हैं लेकिन स्टोरीबोर्ड में नियंत्रक देखने के लिए कोई आउटलेट कैसे बना सकता है? – Sayali

+2

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

+0

लेकिन नियंत्रण के लिए एक दृश्य को कैसे अपनाना है?मैंने जो किया है उसका पालन करें: स्टोरीबोर्ड फ़ाइल का चयन करें-> ड्रैग व्यू कंट्रोलर (मुख्य दृश्य नियंत्रक), टेबलव्यू कंट्रोलर (उप दृश्य नियंत्रक में से एक) और 1 और UIViewController (एक अन्य उप दृश्य नियंत्रक)। फिर मुख्य दृश्य नियंत्रक में मैंने UITableViewController और UIViewController के लिए 2 IBOutlets बनाए। फिर मुख्य UIViewController-> पर राइट क्लिक करें और कहानीबोर्ड में TableViewController में बनाए गए IBOutlet को कनेक्ट करें। लेकिन यह कनेक्शन नहीं बनाया था। अगर मैं कुछ गलत कर रहा हूं तो मुझे बताएं – Sayali

0

ऐसा करने का एक तरीका है जो भी हैकी नहीं है। यह UITabBarControllers के लिए निम्न यूआरएल पर वर्णित है, जिसे आप सूची में पहले दृश्य नियंत्रक का उपयोग कर सकते हैं, पहले सबव्यूव को नियंत्रित करते हैं, और दूसरा दूसरा नियंत्रण करता है। या, आप शायद UISplitViewController के साथ काम करने के लिए कोड को अनुकूलित कर सकते हैं।

http://bartlettpublishing.com/site/bartpub/blog/3/entry/351

असल में, यह क्रम में TabBarController बदलने के बाद आईओएस यह कॉन्फ़िगर करना समाप्त हो गया है काम करता है।

+0

एफवाईआई - आईओएस 7 में शुरू, यह अब और काम नहीं करता है। कुछ ऐसा ही करने का एक तरीका हो सकता है, लेकिन हमने अपनी परियोजना को मानक टैब बार में बदल दिया। – johnnyb

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