में .xibs लोड हो रहा है मेरे पास अपने स्वयं के .xib के साथ एक UIViewController है, और मैं स्क्रीन के निचले हिस्से पर अलग-अलग जानकारी प्रदर्शित करने के लिए एक UISegmentedControl का उपयोग करना चाहता हूं। मैंने कंटेनर के .xib में एक UIView बनाया और कंटेनर के UIViewController में detailView
नामक UIView प्रॉपर्टी से कनेक्ट किया।एक UIView
मैंने आईबी में तीन .xib फ़ाइलों को बनाया, एक दृश्य के लिए कि प्रत्येक सेगमेंट को detailView
क्षेत्र में प्रदर्शित करने की आवश्यकता है।
अब मैं अटक गया हूं क्योंकि मुझे नहीं पता कि उपयुक्त .xib फ़ाइल को detailView
क्षेत्र में लोड और अनलोड कैसे करें। यहाँ मैं कहाँ हूँ:
- (void)segmentValueChanged:(id)sender {
switch ([sender selectedSegmentIndex]) {
case 0:
// Unload whatever is in the detailView UIView and
// Load the AddressView.xib file into it
break;
case 1:
// Unload whatever is in the detailView UIView and
// Load the ContactsView.xib file into it
break;
case 2:
// Unload whatever is in the detailView UIView and
// Load the NotesView.xib file into it
break;
default:
break;
}
}
तो मैं रिक्त स्थान को कैसे को भरने और उतारना है/detailView UIView ठीक से लोड?
धन्यवाद!
--UPDATE--
viewDidLoad में कोड है: - (शून्य) viewDidLoad { [सुपर viewDidLoad];
// Set the default detailView to be address since the default selectedSegmentIndex is 0.
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"AddressView" owner:self options:nil];
// assuming the view is the only top-level object in the nib file (besides File's Owner and First Responder)
UIView *nibView = [nibObjects objectAtIndex:0];
self.detailView = nibView;
self.detailContainerView.autoresizesSubviews = YES;
[self.detailContainerView addSubview:self.detailView];
NSLog(@"self.view is %@", self.view);
NSLog(@"self.detailContainerView is %@",self.detailContainerView);
NSLog(@"self.detailView is %@", self.detailView);
}
और डिबगर संदेशों हैं:
self.view is UIView: 0x3a24d80; frame = (0 0; 320 460); autoresize = RM+BM; layer = CALayer: 0x3a35190
self.detailContainerView is UIView: 0x3a1aea0; frame = (20 57; 280 339); autoresize = W+H; layer = CALayer: 0x3a36b80
self.detailView is UIView: 0x3a24d80; frame = (0 0; 320 460); autoresize = RM+BM; layer = CALayer: 0x3a35190
धन्यवाद!
मुझे पूरा यकीन नहीं है कि इसे एक साथ कैसे रखा जाए। क्या मुझे .xib के प्रत्येक के लिए 'loadNibNamed: स्वामी: विकल्प:' कॉल करने की आवश्यकता है?क्या ऐसा करने का विचार पाने के लिए कुछ मोटा कोड देखना संभव होगा? बहुत बहुत धन्यवाद! –
मैंने अपने उत्तर में कुछ कोड जोड़ा है। –
ओले, महान कोड के लिए धन्यवाद! एकमात्र समस्या जो मैं चल रहा हूं वह यह है कि जब मैं कॉल -लोड नामांकित करता हूं: मालिक: विकल्पों को एनआईबी पूरे दृश्य के शीर्ष पर ओवरलैड किया जाता है, जिसमें यह अंदर होना चाहिए। ऐसा लगता है कि 'self.detailView = nibView;' विस्तारित एनआईबी का आकार विस्तार के अंदर फिट करने के लिए आकार नहीं बदलता है जो कि आईबी में स्थापित किया गया था। यहां कोई विचार है? धन्यवाद! –