UICollectionViewController встраивать в UIContainerView - Как передать данные родителю?
Моя установка выглядит так:
у меня есть UIViewController
с различными элементами поверх него, включая один UIContainerView
, Этот контейнер имеет UICollectionView
с 9 UICollectionViewCell
встроить в него. Все эти клетки имеют один UILabel
в теме. Ячейки все по выбору. Итак, в основном я создал элемент множественного выбора. Мой вопрос, как передать выделенные ячейки (лучше всего, как NSArray со строками всех выбранных элементов) к родителю, UIViewController
?
Что я сделал до сих пор, это создать IBOutlet
к контейнеру в верхней части UIViewController
:
@property (weak, nonatomic) IBOutlet MultiSelectionContainerView *multiSelectionCV;
Я хотел бы иметь возможность получить доступ к массиву выбранных ячеек, как это:
NSArray* selectedCells = [_multiSelectionCV getSelection];
Как мне лучше всего это сделать?
1 ответ
Я полагаю, ваш 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]