如何向UIView告知collectionviewcell中的事件?

问题描述 投票:0回答:1

Reference Image

你好!

我正在使用MVC模式制作一个Swift项目,希望你们可以帮助我如何在不同类之间最好地传递信息。

我会尽力描述,但是请看一下我不好用的参考文献,以便更加清楚。

[项目是用模型构建的,这是一个具有项目规则的简单类,一个视图控制器,它同时具有视图和模型的实例,并在它们之间传递信息并启动视图。

视图具有所有元素变量,并设置布局。该视图具有CollectionViewController,而后者又具有CollectionViewCells。这些单元格之一具有一个按钮。当然还有其他一些课程,但它们不相关。

我想要完成的是,我希望用户单击CollectionViewCell中的Button。然后,CollectionViewCell应该告诉View按下了Button,并且View应该获取一些信息并发送给ViewController,后者将为Model解释它。

或多或少的按钮>用户单击->(CollectionViewController)->视图>视图收集信息-> CollectionView->模型。

我无法将buttonclick事件委托给View,因为不能将UIView委托给View。我可以使用Closure将buttonclick事件发送到CollectionViewController,但似乎无法从那里进一步发送它。

因此,我正在寻找的两种选择是创建一个NotificationCenter,只是告诉View已按下按钮,或者也使View成为ViewController。两者都不是理想的。有没有人有更好的解决方案,或者对我在这里应该做什么有任何见解?

ios swift xcode model-view-controller uiview
1个回答
0
投票

基于您的参考图像的一种解决方案可以是:您可以使用clouser将click事件发送到您的collectionView父视图,并且在您的视图中具有较弱的父viewController实例。当clouser调用时,您可以从父实例调用该方法并更新您的模型

© www.soinside.com 2019 - 2024. All rights reserved.