2009-07-01 15 views
14

मैंने UIViewController को एक नई कक्षा में उपclassed किया है, PageViewController (मैं एक साधारण पुस्तक ऐप लिख रहा हूं)। मैं एक निब फ़ाइल से लोड किया गया एक नया दृश्य जोड़ना चाहता हूं और निम्न कोड का उपयोग कर रहा हूं। यह काम करता हैं।क्यों initWithNibName मेरे UIViewController subclass के लिए काम नहीं करता है?

PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil]; 
[viewController1.view setUserInteractionEnabled:YES]; 
[self.view addSubview:viewController1.view]; 

हालांकि, पहली पंक्ति गलत है क्योंकि मैं PageViewController पर alloc बुला जाना चाहिए। जब मैं इसे (नीचे) सही करता हूं, कोड संकलित करता है लेकिन xib फ़ाइल लोड नहीं होती है और दृश्य केवल पारदर्शी है।

PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil]; 
[viewController1.view setUserInteractionEnabled:YES]; 
[self.view addSubview:viewController1.view]; 

PageViewController initWithNibName विधि uncommented किया गया है और बस डिफ़ॉल्ट, आत्म = की स्थापना [सुपर initWithNibName: nibNameOrNil बंडल: nibBundleOrNil]।

मैं क्या कोशिश की है: पृष्ठ 1 निब फ़ाइल में, मैं PageViewController और UIViewController के बीच फ़ाइल मालिक वर्ग को बदलने की कोशिश की है। हां, मुझे बाद में इसे आउटलेट आउटलेट से कनेक्ट करने के लिए याद आया।

सहायता, कृपया! मैं फंस गया हूँ

+0

हो सकता है त्रुटि अपने overrided initWithNibName विधि में है – oxigen

+0

यह सिर्फ डिफ़ॉल्ट है: - (आईडी) initWithNibName: (NSString *) nibNameOrNil बंडल: (NSBundle *) nibBundleOrNil { अगर (स्वयं = [सुपर initWithNibName: nibNameOrNil बंडल : nibBundleOrNil]) { // कस्टम प्रारंभिकरण \t \t एनएसएलओजी (@ "पृष्ठदृश्य नियंत्रक कस्टम init"); } स्वयं लौटें; } – niels

उत्तर

16

क्या आपने PageViewController में loadView विधि को ओवरराइड किया है? क्या होगा यदि आप viewController1.view को NSLog करते हैं?

वास्तव में, इंटरफ़ेस बिल्डर में, आपको फ़ाइल के स्वामी को पेज व्यू कंट्रोलर पर सेट करना होगा, और इंटरफ़ेस बिल्डर में आपके दृश्य को उस दृश्य से कनेक्ट करना होगा।

+2

आपको धन्यवाद! बग लोडव्यू में नहीं था, यह देखने में था DidLoad - मेरे पास पृष्ठ दृश्य कंट्रोलर में डीडलोड लोड करने वाला कुछ कोड था जो निब फ़ाइल प्रारंभिकरण को ओवरराइट कर रहा था। मैंने पिछली रात 2 बजे से 4 बजे तक इसे ट्रैक करने की कोशिश की, मदद के लिए धन्यवाद! – niels