使用按钮将图像添加到TableViewCell中单击DetailVC Swift 4

时间:2018-09-03 02:16:57

标签: ios swift4

我的tableViewCell将用户带到详细信息viewController。详细信息viewController上有一个收藏夹按钮,允许用户将条目添加为收藏夹。当单击按钮时,我希望在条目的相应tableViewCell中放置一个心形。

我还没有弄清楚如何做到这一点。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

有两种解决方案可以实现您想要的,

  1. 使用代理人:

    • 您可以在详细视图控制器中创建协议,并在列表VC中注册该协议的删除。 因此,当单击详细VC中的“收藏夹”按钮时,您可以使用选定的特定项目的索引调用列表VC,并更新详细VC中的单元格。 您可以从以下网址获取引用:https://www.tutorialspoint.com/ios/ios_delegates.htm
  2. 使用NSNotificationCenter(如上面给出的答案):

    • 在列表VC中注册通知并单击“收藏夹”按钮从详细VC发布通知(向userinfo注册)

按我来说,如果您只想更新1类的信息,则代表将是一个很好的解决方案。

答案 1 :(得分:0)

这对于NSNotificationCenter很有用。

让单元监听“ didMakeFavorite”通知。按下“收藏夹”按钮时,让您的细节控制器发布通知。单元格视图和详细信息视图保持完全分离。并且如果还有其他需要了解该事件的对象,它们也可以将自己添加为观察者。

在通知的userInfo中包含诸如项目ID之类的内容,以便该单元格可以检查此通知是针对其项目还是另一个单元格(在这种情况下,此单元格不应执行其他操作)。

答案 2 :(得分:0)

我已经通过更改列表viewModel / Model的对象完成了同样的事情,其他选项是通知和委托也可以工作。

 // make change in backScreen's CategoryListing Page from where user come here and tapped on wishlist
            if let categoryViewModel = CategoryManager.shared.categoryViewModel, let product = (categoryViewModel.products.filter { $0.id == self.product.id })[safe: 0]{
                product.isWishListed.value = isWishListed
            }