我的设置如下:
我有一个UIViewController
,其上面有不同的元素,包括一个UIContainerView
。此容器中嵌入了UICollectionView
,其中包含9个UICollectionViewCell
。所有这些单元格上都有一个UILabel
。细胞都是可选择的。所以我基本上做的是创建一个多选元素。我的问题是,如何将选定的单元格(最好是带有所有选定元素的字符串的NSArray)传递给父UIViewController
?
我到目前为止所做的是在IBOutlet
顶部的容器中创建UIViewController
:
@property (weak, nonatomic) IBOutlet MultiSelectionContainerView *multiSelectionCV;
我希望能够像这样访问所选单元格的数组:
NSArray* selectedCells = [_multiSelectionCV getSelection];
我该如何做到最好?
答案 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]