如何告诉 UIView 关于 collectionviewcell 中的事件?
How to tell an UIView about an event in a collectionviewcell?
Reference Image
您好!
我正在使用 MVC 模式制作一个 Swift 项目,我希望你们能帮助我了解如何在不同 class 之间最好地传递信息。
我会尽力描述,但请看一下我画得不好的参考,以便更加清楚。
该项目是使用模型构建的,这是一个简单的 class 项目规则,视图控制器具有视图和模型的实例,在它们之间传递信息并启动视图。
View拥有所有的元素变量,并设置布局。该视图有一个 CollectionViewController,而 CollectionViewController 又具有 CollectionViewCells。其中一个单元格有一个按钮。当然还有其他一些 classes,但它们不相关。
我想要完成的是我希望用户单击 CollectionViewCell 中的按钮。然后 CollectionViewCell 应该告诉视图按钮被按下,视图应该获取一些信息并发送到 ViewController,后者将为模型解释它。
或多或少 Button > User Clicks -> (CollectionViewController) -> View > View 收集信息 -> CollectionView -> Model。
我无法将 buttonclick 事件委托给视图,因为无法委托给 UIView。我可以使用 Closure 将 buttonclick 事件发送到 CollectionViewController,但我似乎无法从那里进一步发送它。
所以我正在考虑的两个备选方案是创建一个 NotificationCenter 只是为了告诉 View 一个按钮已被按下,或者也使 View 成为 ViewController。两者似乎都不理想。有没有人有更好的解决方案,或者对我在这里应该做什么有任何见解?
基于您的参考图像的一个解决方案可以是:
您可以将带有 clouser 的点击事件发送到您的 collectionView 父视图,并且在您的视图中有一个弱的父实例 viewController。当 clouser 调用时,您可以从您的父实例调用该方法并更新您的模型
Reference Image
您好!
我正在使用 MVC 模式制作一个 Swift 项目,我希望你们能帮助我了解如何在不同 class 之间最好地传递信息。
我会尽力描述,但请看一下我画得不好的参考,以便更加清楚。
该项目是使用模型构建的,这是一个简单的 class 项目规则,视图控制器具有视图和模型的实例,在它们之间传递信息并启动视图。
View拥有所有的元素变量,并设置布局。该视图有一个 CollectionViewController,而 CollectionViewController 又具有 CollectionViewCells。其中一个单元格有一个按钮。当然还有其他一些 classes,但它们不相关。
我想要完成的是我希望用户单击 CollectionViewCell 中的按钮。然后 CollectionViewCell 应该告诉视图按钮被按下,视图应该获取一些信息并发送到 ViewController,后者将为模型解释它。
或多或少 Button > User Clicks -> (CollectionViewController) -> View > View 收集信息 -> CollectionView -> Model。
我无法将 buttonclick 事件委托给视图,因为无法委托给 UIView。我可以使用 Closure 将 buttonclick 事件发送到 CollectionViewController,但我似乎无法从那里进一步发送它。
所以我正在考虑的两个备选方案是创建一个 NotificationCenter 只是为了告诉 View 一个按钮已被按下,或者也使 View 成为 ViewController。两者似乎都不理想。有没有人有更好的解决方案,或者对我在这里应该做什么有任何见解?
基于您的参考图像的一个解决方案可以是: 您可以将带有 clouser 的点击事件发送到您的 collectionView 父视图,并且在您的视图中有一个弱的父实例 viewController。当 clouser 调用时,您可以从您的父实例调用该方法并更新您的模型