【问题标题】:UICollectionViewController embed in UIContainerView - How to pass the data to the parent?UICollectionViewController 嵌入 UIContainerView - 如何将数据传递给父级?
【发布时间】:2014-02-08 07:10:56
【问题描述】:

我的设置如下所示:

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

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

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

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

NSArray* selectedCells = [_multiSelectionCV getSelection];

我怎样才能最好地做到这一点?

【问题讨论】:

    标签: ios objective-c ipad uicollectionview uicontainerview


    【解决方案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]
    

    【讨论】:

    • 如何从覆盖的UIContainerView 访问UIViewController?感谢您到目前为止的回答!
    • 这个关系是UIViewController->MultiSelectionContainerView->UIContainerView 对吗?我以为您想在顶级 ViewController 中访问容器视图。
    • 关系是UIViewController -> UIView -> MultiSelectionContainerView -> MultiSelectionViewController -> MultiSelectionView -> MultiSelectionCell。我可以通过上面的插座访问MultiSelectionContainerView,但我很难弄清楚如何访问下一层,MultiSelectionViewController
    • 非常感谢您的帮助!我使用 prepareForSegue 建立了最后一个丢失的连接,并通过 segue.destinationViewController 对象调用我的 getSelection 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2017-08-03
    • 1970-01-01
    • 2020-09-22
    • 2017-06-24
    • 2017-11-07
    • 2017-03-23
    相关资源
    最近更新 更多