आप प्रोग्राम के रूप में ऐसा कर सकते हैं, नीचे दी गई विधि जो निर्णय जो देखने नियंत्रक कंटेनर दृश्य में जोड़ा जाना चाहिए बनाने के लिए एक bool मूल्य ले जाएगा और फिर एक वस्तु का दृष्टांत जाएगा और उसके बाद containerView
में जोड़ देगा
- (void)addViewControllerToContainerView:(BOOL)addVC1
{
// Get storyboard
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"<name of storyboard>" bundle:[NSBundle mainBundle]];
UIViewController *viewController = nil;
if (addVC1)
{
// get viewController with identifier
viewController = [storyBoard instantiateViewControllerWithIdentifier:@"<View Controller 1 Identifier>"];
}
else
{
viewController = [storyBoard instantiateViewControllerWithIdentifier:@"<View Controller 2 Identifier>"];
}
// lets add it to container view
[viewController willMoveToParentViewController:self];
[self.view addSubview:viewController.view];
[self addChildViewController:viewController];
[viewController didMoveToParentViewController:self];
// keep reference of viewController which may be useful when you need to remove it from container view, lets consider you have a property name as containerViewController
self.containerViewController = viewController;
}
आप कंटेनर दृश्य नियंत्रक से देखने नियंत्रक को हटाने की जरूरत है जब आप इस
[self.containerViewController willMoveToParentViewController:nil]; // 1
self.containerViewController.view removeFromSuperView];
[self.containerViewController removeFromParentViewController];//this line is updated as view is removed from parent view cotnroller istead of its viewcontroller is removed from parentViewController
self.containerViewController = nil
कंटेनर दृश्य नियंत्रकों के बारे में क्या कर सकते हैं Apple docs
स्रोत
2015-08-23 12:01:47
व्यापक उत्तर के लिए धन्यवाद। दुर्भाग्य से यह काफी काम नहीं करता जैसा मैंने कल्पना की थी। सबसे पहले, मुझे रूट 'UIViewController' के 'UIView' के अंदर 'UIViewController' सक्षम करने की आवश्यकता है। यह पूरे विचार को भरता है। दूसरा, अगर मैं इसे 'UIView' (पूरे वीसी व्यू के बजाय) के सबव्यूव के रूप में जोड़ता हूं, तो यह ऑटो लेआउट बाधाओं के अनुरूप नहीं है जैसे कि यह स्टोरीबोर्ड से एम्बेडेड होगा। –
यह बात इस दृष्टिकोण को प्राप्त करने योग्य है, और यही कारण है कि बच्चे और अभिभावक दृश्य नियंत्रक की अवधारणा है, जब आप एक दृश्य नियंत्रक को बाल दृश्य नियंत्रक के रूप में जोड़ देंगे तो आपको बाल वीसी में बुलाए जाने वाले सभी अन्य जीवन चक्र विधियां मिलेंगी, और निश्चित रूप से ऑटोलाउट भी काम करेगा । –
मैंने सेब डॉक्स से लिंक जोड़ा है जो वर्णन करता है कि कैसे कंटेनर व्यू कंट्रोलर –