.xib

2015-09-13 9 views
14

से बनाए गए UIViewController के अंदर एक कंटेनर व्यू जोड़ें मेरे पास एक .xib फ़ाइल है और मैं इसे एक कंटेनर व्यू (व्यू कंट्रोलर के अंदर रखने के लिए) जोड़ना चाहता हूं। दुर्भाग्य से एक कंटेनर व्यू स्टोरीबोर्ड द्वारा केवल डिस्पोजेबल है। लेकिन जब मैं एक .xib फ़ाइल बनाता हूं और मैं कंटेनर व्यू कंट्रोलर की खोज करता हूं, तो मुझे यह नहीं मिला। क्या कोई मुझे अपना काम कैसे प्राप्त कर सकता है?.xib

+0

यह संभव नहीं है के रूप में यह करने की जरूरत है माता-पिता और बाल दृश्य संबंधों से निपटें जो xib –

उत्तर

19

आप एक storyboard के बजाय एक xib उपयोग कर रहे हैं, तो आप सिर्फ एक सादे UIViewxib करने के लिए एक कंटेनर के रूप में कार्य करने के लिए जोड़ सकते हैं। फिर कोड में, कंटेनर के सबव्यूव के रूप में अपने बच्चे को व्यू कंट्रोलर के view जोड़ें। यहाँ, मैं उचित बच्चे दृश्य नियंत्रक तरीकों का पालन किया और लेआउट की कमी जोड़ दिया है कंटेनर की फ्रेम के साथ अपने फ्रेम अद्यतन सुनिश्चित करने के लिए:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIViewController *childViewController = ...; // create your child view controller 

    [self addChildViewController:childViewController]; 
    [self.containerView addSubview:childViewController.view]; 
    [childViewController didMoveToParentViewController:self]; 

    NSArray *horzConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[childView]|" 
                    options:0 
                    metrics:nil 
                    views:@{@"childView" : childViewController.view}]; 

    NSArray *vertConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[childView]|" 
                    options:0 
                    metrics:nil 
                    views:@{@"childView" : childViewController.view}]; 

    [self.view addConstraints:horzConstraints]; 
    [self.view addConstraints:vertConstraints]; 

    childViewController.view.translatesAutoresizingMaskIntoConstraints = NO; 
} 
+0

के लिए नहीं है धन्यवाद। यह काम करता हैं। –

+0

बहुत बढ़िया, अगर मैं कर सकता तो मैं 10 बार ऊपर उठ जाऊंगा। –

+1

त्रुटि प्राप्त करना *** असीमित अपवाद के कारण ऐप को समाप्त करना 'एनएसआईएनवालिडअर्ग्यूमेंट एक्सेप्शन', कारण: 'बाधा प्रारूप का विश्लेषण करने में असमर्थ: ' | 'की व्याख्या करने में असमर्थ चरित्र, क्योंकि संबंधित दृश्य में पर्यवेक्षण नहीं है एच: | [childView] | ^ ' –

1

चेक करें:

SelectDateViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"selectDateVCID"]; 
[self addChildViewController:vc]; 
[vc.view setFrame:CGRectMake(0.0f, 0.0f, self.selectDateContainerView.frame.size.width, self.selectDateContainerView.frame.size.height)]; 
[self.selectDateContainerView addSubview:vc.view]; 
[vc didMoveToParentViewController:self];