2012-06-27 16 views
56

से कनेक्ट करने के लिए कैसे मैंने पहले अपना TestViewController.h और * .m बनाया। बाद में मेरे TestView.xib।एक्सकोड - XIB को ViewController क्लास

अब मुझे अपने xib को बताने की ज़रूरत है: "हां, कृपया मेरी फ़ाइल के स्वामी के रूप में कक्षा TestViewController लें"।

मैं अपना xib खोलता हूं, अपनी फ़ाइलऑनर के पहचान निरीक्षक के पास जाता हूं और "कस्टम क्लास" TestViewController के अंतर्गत चयन करता हूं।

लेकिन ऐसा लगता है कि जब मैं TestView.xib खोलता हूं, और फिर "सहायक संपादक दृश्य" का चयन करता है तो इसे स्प्लिट स्क्रीन के दाईं ओर संबंधित व्यू कंट्रोलर लाया जाना चाहिए - मेरे मामले में " TestViewController.h "। लेकिन यह नहीं है!

क्या यह देखने के लिए फाइलों को लाइनों को खींचकर xib को अपने व्यू कंट्रोलर को किसी भी तरह से बांधना जरूरी है जैसे आप आउटलेट और कार्यों के साथ करते हैं?

उत्तर

83

xib का चयन करने के लिए क्लिक करें। अब, फ़ाइल के मालिक का चयन करें। दाईं ओर विशेषता पैनल में, तीसरा टैब, "पहचान निरीक्षक" चुनें। कस्टम क्लास नामक एक शीर्षलेख है। वहां अपना व्यू कंट्रोलर का नाम दें। इसके बाद, आप तत्वों को फ़ाइल के स्वामी से जोड़ सकते हैं।

enter image description here

+0

आपका मतलब है कि मुझे बस फाइल मेनू में फ़ाइल का चयन करना चाहिए और फिर "पहचान निरीक्षक टैब" पर क्लिक करना चाहिए? मेरे साथ "कोई चयन नहीं" कहता है। – mogio

+0

ऐसा इसलिए है क्योंकि xib को अचयनित कर दिया गया है। पहचान निरीक्षक को सक्रिय करने के लिए फ़ाइलों के मालिक पर दोबारा क्लिक करें। – Augustine

+0

मैं अपना xib खोलता हूं, अपनी फ़ाइलऑनर के आइडेंटिटी इंस्पेक्टर पर जाता हूं और "कस्टेम क्लास" टेस्ट व्यू कंट्रोलर के तहत चयन करता हूं। लेकिन यह पर्याप्त नहीं लगता है - जैसे कि जब मैं TestView.xib खोलता हूं, और फिर "सहायक संपादक दृश्य" का चयन करता है तो इसे स्प्लिट स्क्रीन के दाहिने भाग पर संबंधित व्यू कंट्रोलर लाया जाना चाहिए - मेरे मामले में "TestViewController। ज "। लेकिन यह नहीं है! – mogio

0

हाँ आप इंटरफ़ेस बिल्डर से उस दृश्य नियंत्रक के मालिकों दायर करने के लिए दृश्य संपत्ति जोड़ने के लिए:

+0

मैं यह कैसे करता हूं ... मैं नियंत्रक.h फ़ाइल में किसी भी पंक्ति को नहीं खींच सकता ... – mogio

+0

कक्षा जोड़ने के बाद अपने TestView के इंटरफ़ेस बिल्डर में जाएं .. और आपको xib में फ़ाइलें मालिक ही मिलेंगे उस पर और संपत्ति सूची विकल्प में देखें, उन सभी विकल्पों की जांच करें जिन्हें आप वहां देख पाएंगे, फ़ाइल मालिकों के साथ उस दृश्य में जोड़ें ... – Abhishek

0

अपने fileownr पहचान निरीक्षक खिड़की पर जाएँ, और आपके विचार ज फाइल करने के लिए फ़ाइल स्वामी की परिवर्तन वर्ग के नाम, वह कनेक्ट होगा।

+0

क्या यह ठीक नहीं है मैंने क्या किया? – mogio

+0

@mogio pls mark answer – Bittu

+0

@mogio तो आप क्या चाहते हैं? – Bittu

17

दृश्य नियंत्रक में एक "दृश्य" आउटलेट (UIView) बना सकते हैं और IBOutlet के रूप में चिह्नित। (जब आप एक्सकोड के भीतर फ़ाइलों को बनाते समय सही डिफ़ॉल्ट/पैटर्न का उपयोग करते हैं, तो यह गुण पहले से ही होना चाहिए।) इंटरफ़ेस बिल्डर में मुख्य दृश्य और व्यू कंट्रोलर/फ़ाइल के स्वामी के व्यू प्रॉपर्टी/आउटलेट के बीच एक लिंक बनाएं। बस पूर्ण तस्वीर के लिए: दृश्य नियंत्रक बनाने/आवंटित करने पर, आपको उचित XIB फ़ाइल के साथ इसे शामिल करना चाहिए। यह बहुत ही क्षण है, जहां व्यू कंट्रोलर ऑब्जेक्ट XIB फ़ाइल से उत्पन्न दृश्य के लिए बाध्य है।

+0

धन्यवाद हरमन, लेकिन वही है जो मैं हासिल करने की कोशिश कर रहा हूं। इसे मैन्युअल रूप से करने के लिए। जब मैं उन्हें स्वचालित रूप से एच फ़ाइल बना देता हूं तो बस xib के बारे में कुछ भी नहीं कहता है। लेकिन अभी भी एक कनेक्शन है। मैं गुणों या विधियों के उदाहरणों के बिना इस कनेक्शन को प्राप्त करने की कोशिश कर रहा हूं। मैं बाइंडिंग के पीछे तंत्र को समझने की कोशिश करता हूं। – mogio

+0

आप मैन्युअल रूप से मैन्युअल रूप से बनाना चाहते हैं? क्या आप इंटरफ़ेस बिल्डर और एक्सआईबी फ़ाइलों का उपयोग किए बिना प्रोग्रामेटिक रूप से अपना पूरा दृश्य बनाना चाहते हैं? –

+0

या क्या आप एक ही स्थान पर व्यू कंट्रोलर बनाना चाहते हैं और बाद में एक वीडब्ल्यूएम एक्सआईबी बना सकते हैं और उसके बाद उस व्यू कंट्रोलर के साथ उस दृश्य को जोड़ सकते हैं जो पहले से मौजूद है? और क्यों? अंत में आप क्या हासिल करना चाहते हैं? आपकी मदद के लिए –

6

1) सबसे पहले की तरह ही हर एक ने कहा कि दृश्य नियंत्रक नाम फ़ाइल के मालिक की कक्षा में

2) फ़ाइल का चयन मालिक खींचें इस जोड़ता है दोनों

3) बनाएँ देखने पर वहाँ से एक लाइन दे देखें नियंत्रक के कहने और उस कोड स्निपेट इस प्रकार है के रूप में करने के लिए खिड़की में जोड़ने,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 

4) अंत में window.TO को subview के रूप दृश्य नियंत्रक के दृश्य जोड़ने के लिए, कि कोडिंग की जाती है कि इस प्रकार है

[window addSubview:[controller view]]; 

AppDelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after application launch 
    [window makeKeyAndVisible]; 

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
    [window addSubview:[controller view]]; 
} 

5 पर निम्नलिखित स्निपेट का प्रयास करें) अब आप देखेंगे ताकि कोई जंभाई प्रकट होता है

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]]; 

खिड़की को देखने के आकार को अधिकतम करने के लिए निम्न स्निपेट का उपयोग करें अपने जैसा कि आप उम्मीद करते हैं नियंत्रक देखें ...

मुझे आशा है कि इस मदद करता है ....

+0

में दृश्य में कनेक्ट कर सकते हैं, धन्यवाद। –

17

मुझे लगता है कि जब मैं एक UIViewController उपवर्ग बनाया है, लेकिन "यूआई के लिए .xib के साथ" जाँच करने के लिए जब मैंने किया भूल गया मैं वास्तव में इस स्थिति का सामना किया। बाद में, मैं वापस गया और अलग से .xib बनाया।

यहां अपने नए UIViewController और .xib को जोड़ने के लिए एक और चरण-दर-चरण तरीका है।

  1. आईबी के बाएं फलक पर प्लेसहोल्डर के तहत फ़ाइल का स्वामी चुनें। प्रॉपर्टी इंस्पेक्टर (आईबी के दाएं फलक) में, तीसरे टैब का चयन करें और "कस्टम क्लास" के तहत "क्लास" को अपने नए UIViewController उपclass का नाम बनने के लिए संपादित करें।

  2. फिर बाएं फलक में फ़ाइल के मालिक पर ctrl-click या राइट-क्लिक करें और बाएं फलक के ऑब्जेक्ट्स भाग में अपने शीर्ष स्तर पर एक रेखा खींचें। 'व्यू' आउटलेट का चयन करें और आप कर चुके हैं।

अब आप अन्य आउटलेट और क्रियाएं सेट करने में सक्षम होना चाहिए। आप कोड में अपने व्यू कंट्रोलर को तुरंत चालू करने के लिए तैयार हैं और इसे लोड करने के लिए initWithNibName और अपने निब नाम का उपयोग करें।

+0

फ्रिक। xcode के नवीनतम संस्करण में "UI के लिए .xib" के साथ कोई नहीं है .... – matrixugly

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