以编程方式在ios中创建容器视图

mog*_*777 4 objective-c ios swift

我知道如何通过storyboard在iOS中创建容器视图,但它不会让我在集合视图单元格中有容器视图.我希望其中一个单元格将另一个控制器作为容器加载.我该怎么做呢?

Fir*_*iro 10

在我给你代码之前你必须意识到这肯定是一个坏主意.UITableViewCells是高度可重用的,只是原始视图没有真正的视图控制器(只是一个数据源)支持.容器视图被设计为嵌套控制器,而不仅仅放置在UIView(如表格单元格)内部.但我离题了:

以下是与容器视图相关的Apple文档(搜索容器视图).

添加和删​​除子项一节下:

// Adding a container view
[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:content.view];
[content didMoveToParentViewController:self];          // 3
Run Code Online (Sandbox Code Playgroud)

// Removing a container view
[content willMoveToParentViewController:nil];  // 1
[content.view removeFromSuperview];            // 2
[content removeFromParentViewController];      // 3
Run Code Online (Sandbox Code Playgroud)

在配置单元格时,它很可能已经在其中具有容器视图(来自其先前的配置).因此,在添加新的之前,您应首先尝试重用已添加的内容.但同样,这个解决方案并不是真的可取,但你已经应该知道,因为IB阻止你做这件事.