Swift 3 - 仅在视图控制器内部分割集合视图的接口

时间:2017-05-02 19:06:31

标签: ios iphone swift xcode

我正在尝试构建一个包含所有静态元素的ViewController,但在其中有一个collectionView,当您单击一个单元格时,会在另一个collectionView中进行segsection而不会更改View的其余部分。这是我想要做的事情的图像:

Image

单击CollectionView时,底栏和顶栏必须更新其内容。主要是需要显示所点击单元格的新信息的文本标签。

基本上,每个CollectionView都是一个" Tier",当你点击一个单元格时,它会转移到下一个" Tier&#34 ;,但它周围的内容仍然存在而不会移动,但也要更新它的内容。

根据我的iOS开发经验,我无法概念化如何解决这个问题。在所有这些视图和ViewControllers之间来回传递数据是一场噩梦。我尝试使用XIB来做到这一点,但它还没有成功。

2 个答案:

答案 0 :(得分:1)

您需要使用ContainerView。它们可以与故事板一起使用或以编程方式使用。

您的父视图控制器将具有所有静态元素,而集合视图控制器将存在于容器视图内。如果您需要在两者之间共享数据,则可以设置委托(协议)关系。

答案 1 :(得分:1)

我花了大约五分钟来制作原型:

enter image description here

这是故事板:

enter image description here

棕色区域是容器视图。它有一个嵌入导航控制器的segue。导航控制器的导航栏未显示。导航控制器具有与根视图控制器的关系,该根视图控制器是集合视图控制器。集合视图控制器具有到详细视图控制器的show segue。

它只是一个原型,所以唯一的代码是集合视图控制器,它说它有三个单元格,加上每个单元格上的轻敲手势识别器来触发show segue。但是,在show segue被触发时更新外部视图中的标签显然不会有问题。