2011-12-28 4 views
6

मैं एक आईओएस 4 एप्लीकेशन विकसित कर रहा हूं और मैंने कुछ कक्षाएं विकसित की हैं जिन्हें मैं अन्य परियोजनाओं में उपयोग करना चाहता हूं।इनहेरिट UIViewController वर्ग और XIB

MapViewController नामक इस कक्षा में से एक, UIViewController subclass है। यह कक्षा एक एक्सआईबी फ़ाइल का उपयोग करती है जिसे मैंने इंटरफ़ेस बिल्डर के साथ बनाया है।

मुझे आश्चर्य है कि MapViewController एक नई कक्षा से एक सुपर क्लास के रूप में MapViewController का उपयोग करें, मैं इसे XIB से कैसे उपयोग कर सकता हूं?

मैं MapViewController और इसके XIB का पुन: उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि मुझे XIB फ़ाइल के साथ कुछ खास करना है या नहीं।

मुझे नहीं पता कि यह कैसे समझाया जाए। अगर आपको अधिक जानकारी चाहिए, तो कृपया मुझे बताएं।

अद्यतन:

मैं एक नया वर्ग है कि MapViewController से विरासत, इस तरह बनाना चाहते हैं:

... 
@interface NewMapViewController : MapViewController { 

... 

और, अब अगर मैं एक ही XIB उपयोग जारी रखना चाहते (से एक MapViewController), मुझे क्या करना चाहिए?

+0

मुझे समझने की कोशिश करते हैं, तो आप होना चाहते हैं अपने MapViewController और उसके XIB का उपयोग करने में सक्षम है, लेकिन अगर आपको कुछ विशेष व्यवहार की आवश्यकता है तो आप XIB का उपयोग नहीं करना चाहते हैं? – Peres

+0

यह स्पष्ट नहीं है कि सही समस्या क्या है। – Max

+1

क्षमा करें। मैंने अभी और अधिक जानकारी के साथ अपना प्रश्न अपडेट कर लिया है। – VansFannel

उत्तर

6

चूंकि आप MapViewController से प्राप्त करने वाले हैं, इसलिए आपका MapViewController सुपर क्लास बन जाता है। और आपके पास MapViewController.xib भी है। यह बहुत मेरे लिए सरल लगता है, तो आप के लिए NewMapViewController

NewMapViewController.m

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    NSLog(@"Subclass initWithNibName called"); 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

प्रारंभकर्ता का उपयोग की तरह अपने NewMapViewContoller प्रारंभ:

//Nib of super class is MapViewController 
NewMapViewController *nmapController = [[NewMapViewController alloc] initWithNibName:@"MapViewController" bundle:[NSBundle mainBundle]]; 
+0

नहीं, ऐसा नहीं है। मैंने कोशिश की। वास्तव में, initWithNibName कभी नहीं कहा जाता है। –

+0

@JimThio मैंने अपना जवाब संपादित किया है। मैंने इसका परीक्षण किया और यह मेरे लिए काम करता है। कोशिश करो और मुझे बताओ। – MadhavanRP

+0

आईओएस 9.2 में मेरे लिए काम किया, धन्यवाद! – webo80

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

  • कोई संबंधित समस्या नहीं^_^