我有 3 个 viewController:
VcA:我使用观察者从数据库读取数据,并通过 segue 传递给 VcB。
VcB:我读取数据并显示它,用一个按钮调用VcC来更新数据,并使用segue传递数据。
VcC:一个静态表格 View ,我在其中更新数据并保存它们。
问题是,当我在保存 VcC 后关闭并返回 VcB 时,所有数据都是旧的,即使在 firebase 中所有数据都已完美更新。
例如,在 VcB 中,我读到的标题是这样的:
var groupName: String?
比 didAppear 中的:
Name.title = groupName
无论如何,如果我也从 VcB 返回到 VcC,则表中的所有数据都是旧数据。
更清楚地说:
我在VcA中调用数据库
点击表中的名称并将数据传递给Vcb,现在一切都很好,标题和其他变量都可以
现在我单击“编辑”并调用 VcC,我在该表中更新数据、进行更改并保存,
保存 VcC 后关闭并返回 VcB -> 标题仍然是 p2 但在 firebase 中不是!
我再次点击“编辑”返回到VcC(编辑表),标题是旧的
我认为我必须从数据库中调用数据...无论如何都要在不刷新 Firebase 数据的情况下执行此操作?
我知道如果我保存全部后返回VcA没问题,但我确实需要转到VcB,我该怎么办?
我找到了很多帖子,这是最相似但不完全准确的情况... Reload tableView after dismiss a viewController
最佳答案
如果我能正确地遵循这一点。
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.
}
}
关于swift - firebase 在 Swift 中关闭重新加载表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760581/