我知道如何通过故事板在iOS中创建容器视图,但它不允许我在集合视图单元格中拥有容器视图。我希望其中一个单元格将另一个控制器作为容器加载。我该怎么做呢?
答案 0 :(得分:10)
在我给你代码之前你必须意识到这肯定是一个坏主意。 UITableViewCells
是高度可重用的,只是原始视图,没有真正的视图控制器(只是一个数据源)支持。容器视图被设计为嵌套控制器,而不仅仅放在UIView
内(如表格单元格)。但我离题了:
以下是与container views相关的Apple文档(搜索容器视图)。
在添加和删除儿童部分
下// Adding a container view
[self addChildViewController:content]; // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:content.view];
[content didMoveToParentViewController:self]; // 3
// Removing a container view
[content willMoveToParentViewController:nil]; // 1
[content.view removeFromSuperview]; // 2
[content removeFromParentViewController]; // 3
配置单元格时,它内部很可能已经有一个容器视图(来自之前的配置)。因此,在添加新的之前,您应首先尝试重用已添加的内容。但同样,这个解决方案并不是真的可取,但你已经应该知道,因为IB阻止你做这件事。