UICollectionViewController嵌入UIContainerView - 如何将数据传递给父级?

时间:2014-01-19 00:11:06

标签: ios objective-c ipad uicollectionview uicontainerview

我的设置如下:

我有一个UIViewController,其上面有不同的元素,包括一个UIContainerView。此容器中嵌入了UICollectionView,其中包含9个UICollectionViewCell。所有这些单元格上都有一个UILabel。细胞都是可选择的。所以我基本上做的是创建一个多选元素。我的问题是,如何将选定的单元格(最好是带有所有选定元素的字符串的NSArray)传递给父UIViewController

我到目前为止所做的是在IBOutlet顶部的容器中创建UIViewController

@property (weak, nonatomic) IBOutlet MultiSelectionContainerView *multiSelectionCV;

我希望能够像这样访问所选单元格的数组:

NSArray* selectedCells = [_multiSelectionCV getSelection];

我该如何做到最好?

1 个答案:

答案 0 :(得分:2)

我认为您的MultiSelectionContainerView中有UICollectionView个烬,在MultiSelectionContainerView中:

 - (NSArray *)getSelection{
    NSMutableArray *selectedItems = [[NSMutableArray alloc] init];
    for (NSIndexPath *indexPath in [self.collectionView indexPathsForSelectedItems]){
        YourCollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath];
        [selectedItems addObject:cell.label.text];
    }
    return selectedItems;
}

修改

您必须逐层传递这些图层,例如UIViewController保留MultiSelectionContainerView作为属性,MultiSelectionContainerView保存MultiSelectionViewController,然后在MultiSelectionViewController中实现我的答案。然后你可以通过

访问它
 [self. multiSelectionCV.multiSelectionVC getSelection]