firebase在Swift中删除reload table?

ddhy6vgd  于 2023-05-16  发布在  Swift
关注(0)|答案(1)|浏览(127)

我有三个viewControllers:
VcA:我用观察器从数据库读取数据,然后用segue传递给VcB。
VcB:我读取数据并显示它,通过一个按钮我调用VcC来更新数据,通过segue传递数据。
VcC:一个静态表视图,我在其中更新数据并保存它们。
问题是,当我在保存VcC后关闭并返回VcB时,所有数据都是旧的,即使在Firebase中所有数据都被完美更新。
例如,在VcB中,我这样阅读标题:

var groupName: String?

than in didAppear:

Name.title = groupName

无论如何,如果我也从VcB返回到VcC,表中的所有数据都是旧数据。
更清楚地说:
我调用VcA中的数据库

单击表中的名称并将数据传递给Vcb,目前一切正常,title和其他变量都正常

现在我单击EDIT并调用VcC,我在其中更新数据、进行更改并保存,

保存VcC后,我返回到VcB -> title仍然是p2,但在firebase中不是!

我再次点击EDIT返回到VcC(编辑表),标题是旧的

我想我得从数据库中调用数据…无论如何都要做到这一点,而不刷新数据从firebase?
我知道如果我在保存后回到VcA,一切都很好,但我真的需要去VcB,我该怎么办?
我发现了许多线索,这是最相似但不确切的情况…Reload tableView after dismiss a viewController

4ioopgfo

4ioopgfo1#

如果我能正确理解的话。
VcC:

protocol %NAME%Delegate
{
    func reloadData()
}

class VcC: UIViewController /*(or table)*/{
    var mDelegate : %NAME%Delegate?

    //in the func you use to dismiss self (VcC)
    //mDelegate?. reloadData()

}

VcB:

class VcB: UIViewController /* (or table)*/,%NAME%Delegate  {
    func reloadData(){
       tableView.reloadData()
       //OR
       //Observer for Firebase here to gather the new information. Make sure to reset all datasources if you do this.
    }
}

相关问题