2012-11-13 9 views

उत्तर

38

कंटेनर व्यू एक ऐसा दृश्य है जिसे आप अपने स्टूडियोबोर्ड में पहले से मौजूद अपने दृश्य नियंत्रकों में से एक में खींच सकते हैं (हम इस दृश्य नियंत्रक को कॉल करेंगे)। आप स्वचालित रूप से एक दृश्य segue के माध्यम से इस दृश्य से जुड़े एक दृश्य नियंत्रक मिलता है। इस नए दृश्य नियंत्रक के पास फ्रेम सेट है, ताकि यह कंटेनर व्यू के समान आकार हो - यदि आप कंटेनर व्यू का आकार बदलते हैं, तो नियंत्रक स्वचालित रूप से आकार बदल जाएगा। इसलिए, यदि आप चाहते हैं, तो आप एकाधिक कंटेनर दृश्यों को viewControllerA में खींच सकते हैं, और प्रत्येक के पास अपना स्वयं का व्यू कंट्रोलर होगा। कोड में, यदि आपको इन एम्बेडेड व्यू कंट्रोलर तक पहुंचने की आवश्यकता है, तो उन्हें viewControllerA.childViewControllers से एक्सेस किया जा सकता है - जो आपको आपके द्वारा एम्बेड किए गए किसी भी एम्बेडेड व्यू कंट्रोलर की सरणी देगा।

डब्ल्यूडब्ल्यूडीसी 2012 सत्र वीडियो वीडियो में इन कंटेनर विचारों की चर्चा है जिसे "आपकी ऐप में स्टोरीबोर्ड को अपनाना" कहा जाता है।

+0

क्या यह वही बात है जो प्रोग्रामिंग में "नियंत्रक युक्त" है? – huggie

+2

@ हूगी, आईबी में एक कंटेनर व्यू का उपयोग करके आपको वही चीज मिलती है जो आपको कोड में कस्टम कंटेनर कंट्रोलर एपीआई का उपयोग करके मिलता है। – rdelmar

30

मुझे उलझन में है कि क्यों और जब हमें कंटेनर व्यू का उपयोग करने की आवश्यकता है?

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

और हम कोड द्वारा कंटेनर व्यू को कैसे चालू कर सकते हैं?

एक ही तरीका है कि आप सामान्य रूप से कोड से एक UIView का दृष्टांत चाहते हैं:

CGRect frame = CGRectMake(someX, someY, someWidth, someHeight); 
UIView *container = [[UIView alloc] initWithFrame:frame]; 

उसके बाद, आप शायद कंटेनर में कुछ subviews जोड़ने के लिए, और अंततः के एक subview के रूप कंटेनर जोड़ना चाहें, आपका दृश्य नियंत्रक का विचार।

इसके अलावा, ध्यान दें कि हम के बारे में विचारों और नहीं दृश्य नियंत्रकों यहाँ बात कर रहे हैं। लोग कंटेनर व्यू कंट्रोलर के बारे में भी बात करते हैं, जिसके द्वारा वे व्यू कंट्रोलर का मतलब रखते हैं जो अन्य व्यू कंट्रोलर प्रबंधित कर सकते हैं। UITabBarController, UINavigationController, और UISplitViewController आईओएस द्वारा प्रदान किए गए कंटेनर व्यू कंट्रोलर के उदाहरण हैं। यदि आप चाहें तो आप अपना खुद का निर्माण कर सकते हैं, लेकिन यह एक और प्रश्न के लिए एक विषय है।

अद्यतन: आपकी टिप्पणी से, आप स्पष्ट रूप से स्टोरीबोर्ड संपादक में "कंटेनर व्यू" आइटम के बारे में सोच रहे हैं। यदि आप किसी को एक दृश्य में खींचते हैं, तो आप देखेंगे कि:

  1. दृश्य स्वयं प्लेसहोल्डर के रूप में उपयोग किया जाने वाला UIView है।

  2. दृश्य के साथ, संपादक एक ऐसा क्षेत्र बनाता है जहां आप बच्चे के दृश्य नियंत्रक द्वारा प्रबंधित की जाने वाली सामग्री को संपादित कर सकते हैं। नीचे दी गई तस्वीर देखें।

container view in IB

यह सिर्फ एक वस्तु नहीं है - यह कई है। आपको एक दृश्य, एक बाल दृश्य नियंत्रक, और एक 'एम्बेड' segue मिलता है। आप निश्चित रूप से कोड में स्वयं को बना सकते हैं और यदि आप चाहें तो उन्हें उचित रूप से कनेक्ट कर सकते हैं।

+0

मुझे नहीं लगता कि यह ओप पूछ रहा है। आईबी में एक नया प्रकार का दृश्य उपलब्ध है (केवल स्टोरीबोर्ड में मुझे लगता है) जिसमें एक व्यू कंट्रोलर हो सकता है। उस दृश्य नियंत्रक को एक एम्बेड segue के माध्यम से hooked है। यह एक सामान्य दृश्य से और एक कंटेनर व्यू नियंत्रक से अलग है। दृश्यों के पीछे वास्तव में यह बात क्या है, मुझे नहीं पता - मुझे इस पर कोई दस्तावेज नहीं मिल रहा है। मुझे लगता है कि यह कोड में बनाया जा सकता है, लेकिन मुझे नहीं पता कि कैसे। – rdelmar

+0

@rdelmar, हाँ, मैं आईबी में उपलब्ध "कंटेनर व्यू" के बारे में पूछ रहा हूं। मैं "कंटेनर व्यू" और एक आम "दृश्य" के बीच उलझन में हूं। मेरी समझ के अनुसार, दृश्य में उप-दृश्य भी शामिल हो सकते हैं और उन उप-विचारों को भी अपने स्वयं के नियंत्रकों द्वारा प्रबंधित किया जा सकता है। मेरी समझ गलत हो सकती है, कृपया कृपया स्पष्टीकरण में मदद करें। –

+0

@WilliamChoi, मेरा जवाब देखें। – rdelmar

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