我正在开发我的应用程序的一部分,用户可以拥有不同的银行,并且该用户可以从银行中兑换信用额。
我遇到的问题涉及三个TableViewControllers:
BankTVC通过在我的模型中调用一个返回所有银行的函数来使银行在viewDidLoad中列出。通过导航栏中的“添加”按钮可以访问AddBankTVC。通过点击其中具有银行的单元格来访问BankDetailTVC。
func loadBanks() -> [Bank] {
let bankFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "Bank")
bankFetch.sortDescriptors = [NSSortDescriptor.init(key: "lastUpdated", ascending: false)]
let loadedBanks = try! context.fetch(bankFetch)
if loadedBanks.count == 0 {
let sampleBanks = addSampleBanks()
return sampleBanks
}
print("Loaded Banks")
return loadedBanks as! [Bank]
}
BankTVC符合BankModifierDelegate协议,该协议要求它具有一个称为bankWasModified()的函数。这只是从模型中重新加载银行
func bankWasModified() {
print("Bank was modified")
banks = bankModel.loadBanks()
tableView.reloadData()
}
从AddBankTVC调用bankWasModified时,BankTVC将使用新的信息单元进行更新。但是,当从BankDetailTVC调用bankWasModified时,返回到BankTVC时信息不会更新。但是,当我解雇BankTVC然后又重新使用它时,信息将更新。
我知道上下文是从控制台输出中保存的。保存上下文,运行bankWasModified,重新加载库。不知道发生了什么。