[英]Refresh Core Data in ViewController when Modal View (2nd view) is Dismissed - Swift
我試圖弄清楚如何關閉模態視圖后如何重新加載UIViewController。 我正在從View 1(我的UIVIewController)切換到Modal View,在那里我對Core Data進行了更新。 完成后,我保存核心數據並關閉模態視圖,將用戶送回視圖1(UIViewController)。 問題在於UIViewController沒有將更新的更改拉到Core Data(而是顯示舊的信息,因為尚未刷新)。
我認為這是最接近的答案,但我在從Objective-C轉換為Swift時遇到了麻煩。
有任何想法嗎? 先謝謝您的幫助。
這是NSFetchedResultsController快速示例
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
do {
try fetchedResultsController.performFetch()
} catch {
print("An error occurred")
}
}
private lazy var fetchedResultsController: NSFetchedResultsController = {
let animalsFetchRequest = NSFetchRequest(entityName: "Animal")
let sortDescriptor = NSSortDescriptor(key: "classification.order", ascending: true)
animalsFetchRequest.sortDescriptors = [sortDescriptor]
let frc = NSFetchedResultsController(
fetchRequest: animalsFetchRequest,
managedObjectContext: self.context,
sectionNameKeyPath: nil,
cacheName: nil)
frc.delegate = self
return frc
}()
// delegate method
func controllerDidChangeContent(controller: NSFetchedResultsController) {
// update UI
}
我對這個問題的建議是創建將通知View 1的委托。
例如:
在呈現的視圖控制器中創建委托:
protocol NotifyReloadCoreData
func notifyDelegate()
end
創建視圖控制器的屬性:
var delegate: NotifyReloadCoreData?
當按保存或類似的東西時:
delegate.notifyDelegate()
在您看來1
class UIViewController1: UIViewController, NotifyReloadCoreData
並執行功能
func notifyDelegate(){
// reload core data here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.