从另一个视图控制器更新 UITableView 数据单元格

问题描述

一旦用户进入 SecondVC 并且喜欢或不喜欢他们输入的单元格的心脏,我就会尝试更新我的 firstVC“喜欢按钮”状态。我今天尝试了很多不同的方法,但似乎没有一个能正常工作。任何帮助或想法

基本上。用户可以点击一个单元格,然后被定向到另一个视图控制器,他们也可以在那里更改类似按钮的状态。一旦他们返回到 mainVC,我希望点赞按钮显示更改。

我想知道我是想将单元格数据保存在手机本地还是只是将变量来回发送到每个视图控制器。但是,如果我来回发送变量,如何将变量发送回第一个 VC 到特定单元格,并让它知道不再喜欢单元格之类的按钮。我希望我说得通。谢谢大家。在这里仍然不熟悉 swift :)

解决方法

我认为你可以使用委托模式

protocol ViewController2Delegate: class {
    func buttonStatusDidChange(_ viewController2: ViewController2,to status: Bool)
}

将此属性添加到第二个视图控制器:

weak var delegate: ViewController2Delegate?

当按钮状态改变时,调用:

delegate?.buttonStatusDidChange(self,to: true)

使第一个视图控制器符合协议:

extension ViewController1: ViewController2Delegate {
    func buttonStatusDidChange(_ viewController2: ViewController2,to status: Bool) {
        // change the button according to the status
    }
}