gpt4 book ai didi

ios - 如何在另一个 UIViewController 中编辑 UICollectionView 项?

转载 作者:行者123 更新时间:2023-11-30 14:17:33 38 4
gpt4 key购买 nike

我正在使用带有 Swift 的主从 View Controller 。当我单击主单元格时,我会看到一个包含图片列表的 Collection View 。每张图片代表存储在 Core Data 中的数据。每张图片数据都有一个时间戳,并且同一天拍摄的所有图片都存储在同一个主单元中。

[Date of the day 1]
[pic1]
[pic2]

[Date of the day 2]
[pic3]
[pic4]

我想要实现的是:当我单击图片时,会显示另一个 ViewController(通过 segue),并且这个新的 VC 允许我编辑图片并更改其日期。

问题是,当我更改日期或图片时,这里会发生多件事:

  • 如果照片集中只有这张照片,那么我还必须删除 Master Day 单元格。
  • 如果图片不是单独的,我只需要更新详细 Collection View
  • 在任何情况下,如果我必须创建新的一天,我需要创建新的主单元并更新 View ,如果我需要删除一天,我还必须更新主视图。

如果您编辑集合项目,您只需执行以下操作:

self.collectionView performBatchUpdates:

然后更新模型,并通知 Collection View 您的操作...但我不知道如何从另一个 UIViewController 做到这一点。

目前,在编辑 View Controller 中,我更新模型,然后关闭 View Controller 。我遇到了崩溃,因为 collectionView 尝试显示不再属于当前集合的项目...

为了解决这个问题,也许我可以使用一个协议(protocol)来从编辑 View 通知详细 View ,但是如果我这样做,我需要将编辑单元格的 IndexPath 提供给编辑 View ,然后将其返回通过协议(protocol)查看详细信息...为什么不呢。但在我看来并不是那么干净。

另一个问题是,当我删除一天时,应用程序似乎也在主视图中崩溃。因为,主视图不知道我从编辑 View 中删除了一天。

我的主要问题是,我不知道如何告诉我的主视图 Controller 我做了一些模型更改......特别是当我在编辑 View 中没有任何 IndexPath 信息时。

从技术上讲,我猜我可以使用 notificationCenter 来通知两个 View ...但是,我仍然需要将两个 IndexPath 从主视图传递到详细 View ,然后传递到编辑 View 。

丑陋。

最佳答案

实现这一目标的几种方法:

1)委托(delegate):包含 Collection View 的 View Controller 将充当编辑 View Controller 的委托(delegate),编辑完成后它将回调一个方法到“包含 Collection View 的 View Controller ”

2) 通知:编辑完成

3) block

关于ios - 如何在另一个 UIViewController 中编辑 UICollectionView 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937053/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com