切换属性不会实时显示变化

问题描述

我有一个星形按钮,我想在点击时在填充和空之间切换。

enter image description here

我实现了以下功能:

func setStarButton() {
        
        let currentItem = data[currentItemIndex!]
        if currentItem.isStarred == true {
            starButton.setImage(UIImage(systemName: "star.fill"),for: .normal)
        }
        else {
            starButton.setImage(UIImage(systemName: "star"),for: .normal)
        }
        
    }

@IBAction func starTapped(_ sender: Any) {
        
        // Change the property in the Array
        var currentItem = item[currentItemIndex!]
        currentItem.isStarred?.toggle()
        
        // Update the database
        model.updateStarredStatus(currentItem.docID!,currentItem.isStarred!)
        
        // Update the button
        setStarButton()
        
    }

然后我在 viewDidAppear 中调用该函数:

override func viewDidAppear(_ animated: Bool) {
        
        // Set the status of the star button
        setStarButton()
        
    }

因此发生了以下预期行为:

  1. 星形按钮仅在我第一次打开视图控制器时才显示为正确的填充/未填充状态
  2. 当我点按星号按钮时,我的 Firebase Firestore 数据库会更新 Bool 值

我想要实现的是:当我继续实时点击它时,星形按钮在视图中变得填充/未填充。

有什么想法吗?我想我可能需要视图来监听数据库中的更改以进行可视化更新,但我不确定。非常感谢任何指导!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)