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

Ios UICollectionViewController嵌入UIContainerView-如何将数据传递给父级?,ios,objective-c,ipad,uicollectionview,uicontainerview,Ios,Objective C,Ipad,Uicollectionview,Uicontainerview,我的设置如下所示: NSArray* selectedCells = [_multiSelectionCV getSelection]; 我有一个UIViewController,上面有不同的元素,包括一个UIContainerView。此容器有一个UICollectionView,其中嵌入了9个UICollectionViewCell。所有这些单元格上都有一个UILabel。这些单元格都是可选择的。所以我基本上是创建了一个多选元素。我的问题是,如何将选定的单元格(最好是包含所有选定元素字符串

我的设置如下所示:

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

到目前为止,我所做的是创建一个
IBOutlet
到顶部
UIViewController
中的容器:

@property (weak, nonatomic) IBOutlet MultiSelectionContainerView *multiSelectionCV;
我希望能够访问选定单元格的数组,如下所示:

NSArray* selectedCells = [_multiSelectionCV getSelection];

我如何才能最好地做到这一点?

我假设您的
MultiSelectionContainerView
在您的
MultiSelectionContainerView
中有一个
UICollectionView
成员:

 - (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
holds
MultiSelectionContainerView
作为属性,
MultiSelectionContainerView
holds
MultiSelectionViewController
,然后在MultiSelectionViewController中实现我的答案。然后您可以通过

 [self. multiSelectionCV.multiSelectionVC getSelection]

如何从上覆的
UIContainerView
访问
UIViewController
?谢谢你迄今为止的回答!此关系是否正确?我以为您想访问top ViewController中的容器视图。关系是
UIViewController
->
UIView
->
MultiSelectionContainerView
->
MultiSelectionViewController
->
MultiSelectionView
->
MultiSelectionCell
。我可以从上方通过插座访问
MultiSelectionContainerView
,但我很难确定如何访问下一层,即
MultiSelectionViewController
,非常感谢您的帮助!我使用prepareForSegue并通过segue.destinationViewController对象调用getSelection方法建立了最后一个丢失的连接。