gpt4 book ai didi

ios - 如何在关闭模式后重新加载表格 View

转载 作者:行者123 更新时间:2023-12-01 21:28:25 25 4
gpt4 key购买 nike

我目前在模态框上有用户输入数据并将其保存到核心数据:

var container: NSPersistentContainer!

func saveContext() {
if container.viewContext.hasChanges {
do {
try container.viewContext.save()
} catch {
print("An error occured whlie saving: \(error.localizedDescription)")
}
}
}
关闭模式后,我想在父 View Controller 上重新加载表。但是,无论我如何加载它,从 viewDidLoad 或 viewWillAppear,表格都不会重新加载。我知道数据已正确保存到核心数据中,因为当我重建时,数据会正确显示在表格上。
这是我想在关闭模式时触发的功能:
func loadSavedData() {
if fetchedResultsController == nil {
let request = Goal.createFetchRequest()
let sort = NSSortDescriptor(key: "title", ascending: true)
request.sortDescriptors = [sort]
request.fetchBatchSize = 20

fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: container.viewContext, sectionNameKeyPath: "title", cacheName: nil)
fetchedResultsController.delegate = self
}

fetchedResultsController.fetchRequest.predicate = myPredicate

do {
try fetchedResultsController.performFetch()
tableView.reloadData()
} catch {
print("Fetch failed")
}
}

最佳答案

在这个 article发表在 Medium 上的 Sean Berry 的文章,你可以进一步了解 viewWillAppear 没有被调用的原因。
然后,您可以使用闭包来了解您的模态何时被解除。
将其添加到您的模态视图 Controller 中:

var isDismissed: (() -> Void)?
然后您可以在关闭 Controller 时调用它:
self.isDismissed?()
最后在呈现 View Controller 中,当您初始化模式时,您可以监听闭包,例如:
let modalController = YourController()
modalController.isDismissed = { [weak self] in
self?.loadSavedData()
}

关于ios - 如何在关闭模式后重新加载表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63210513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com