簡體   English   中英

關閉模態視圖(第二視圖)時,刷新ViewController中的核心數據-Swift

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM