2015-09-05 7 views
5

मुझे पता होगा कि वर्ग के loadNibNamed कैसे काम करता है; कुछ दस्तावेज़ों में मुझे कुछउद्देश्य सी: loadNibNamed विधि: यह कैसे काम करता है?

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

वापसी मूल्य के बिना कुछ मिलता है; बस एक विधि के अंदर बुलाया जाता है (उदा। cellForRowAtIndexPath अगर मैं अपने सेल को कस्टमाइज़ करना चाहता हूं)। अन्य दस्तावेजों में मुझे लगता है:

NSArray* vett=[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

इस मामले में, उदाहरण के लिए, cellForRowAtIndexPath में, मैं कर सकता

return [vett lastObject]; 

या कुछ इस तरह। बाद की विधि मुझे स्पष्ट लगती है; मैं एक वेक्टर में नीब लोड करता हूं और फिर मैं वेक्टर तत्वों का उपयोग करता हूं। समस्या को समझने है वास्तव में पहले क्या क्या:

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

कोई वापसी मान, कोई कक्ष संदर्भ ... जहाँ मेरे निब की वस्तुओं रहे हैं? वे कैसे संभाले जाते हैं? मुझे समझ नहीं आता कि यह कैसे काम करता है

+2

मैं इसे [एपीआई के लिए आईओएस दस्तावेज] से बेहतर नहीं कह सकता हूं (https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSBundle_UIKitAdditions/#//apple_ref/occ/instm/NSBundle/loadNibNamed: मालिक: विकल्प :) या आपको [कस्टम व्यू आवंटित करने पर इस अनुभाग की तुलना में बेहतर अवलोकन] प्रदान करता है (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaViewsGuide/SubclassingNSView /SubclassingNSView.html#//apple_ref/doc/uid/TP40002978-CH7-SW20) –

उत्तर

5

उदाहरण के लिए, आप कस्टम निब @ "CustomView" के साथ एक उपवर्ग UIView है

उसे लोड कर सकते हैं:

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil]; 
    CustomView * customView = [arr firstObject]; 
3

इस विधि की एक सरणी देता है निब में वस्तुओं। यदि आप उदाहरण के लिए कस्टम व्यू को चालू करना चाहते हैं तो आप एंथू के तरीके से वापसी मूल्य का उपयोग करना चाहेंगे।

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil]; 
CustomView * customView = [arr firstObject]; 

यदि फिर भी आप फ़ाइल का स्वामी (ध्यान दें कि यदि आप इस विधि के लिए एक मालिक में पारित कर सकते हैं) कॉन्फ़िगर करने xib उपयोग करना चाहते हैं, तो आप सरणी दिया जाता है में कोई दिलचस्पी नहीं हो सकता है। जैसे यदि xib फ़ाइल के मालिक के IBActions और IBOutlets को xib में तत्वों से जोड़ता है।

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:nil]; 

आप दोनों दृष्टिकोणों को भी जोड़ सकते हैं।

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