gpt4 book ai didi

Swift TableView 插入新行

转载 作者:行者123 更新时间:2023-11-30 12:15:18 25 4
gpt4 key购买 nike

我有一个 TableView,它从核心数据中获取数据。

保存数据后,它们将被插入为第一行。

这是我用来保存数据的代码(我没有使用获取 Controller ,因为我没有获取任何数据,只是加载它们,这是因为我加载的日期来自一个到许多关系)

swimToConnect.addToMaterialsLocal(materialLocal)
ad.saveContext()

// Adding the new row to update the tableView
let MyMaterialsVC = self.presentingViewController?.presentingViewController?.presentingViewController as! MyMaterialsVC
MyMaterialsVC.myMaterials.insert(materialLocal, at: 0)
MyMaterialsVC.tableView.insertRows(at: [NSIndexPath(row: 0, section: 0) as IndexPath], with: .none)
MyMaterialsVC.dismiss(animated: true, completion: nil)
}

所以我想知道是否有办法插入按日期排序的行。我按日期对它们进行排序,如下所示:

var swim: SwimminPool! {
didSet {
myMaterials = (swim.materialsLocal?.allObjects as! [MaterialLocal]).sorted(by: {$0.createdAtLocal! > $1.createdAtLocal!})
}
}

其中创建时间是用户使用日期选择器添加的日期。当我保存新数据时,显然它们会显示在第一行,但是如果我关闭 Controller 然后返回,则数据将根据日期顺序显示。

有没有办法在保存数据后立即按正确的顺序对数据进行排序?

谢谢。

最佳答案

将其更改为以下内容

swimToConnect.addToMaterialsLocal(materialLocal)
ad.saveContext()

// Adding the new row to update the tableView
let MyMaterialsVC = self.presentingViewController?.presentingViewController?.presentingViewController as! MyMaterialsVC
MyMaterialsVC.myMaterials.insert(materialLocal, at: 0)
MyMaterialsVC.myMaterials = (swim.materialsLocal?.allObjects as! [MaterialLocal]).sorted(by: {$0.createdAtLocal! > $1.createdAtLocal!})
MyMaterialsVC.tableView.reloadData()
MyMaterialsVC.dismiss(animated: true, completion: nil)
}

关于Swift TableView 插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503051/

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