我有一个问题,长期以来一直在处理,从来没有看到原因。
问题
我有一个UItableview并从Firebase加载数据。当我离开"显示"从ViewController#1到ViewController#2(使用UITableView),firebase数据被加载到单元格中。
每个单元格都有一个UITableViewRowAction"删除"这基本上删除了Firebase信息。但是,当我按下按钮时,它确实删除了Firebase信息,但没有删除单元格。为了让UITableView更新,我必须要进行#34; show"回到任何其他ViewController并返回ViewController#2进行更新。
**如果表
中有多个UITableViewCell,则此方法仅更新问题#2 - 只有1个UITableViewCell
现在如果只加载了1个UITableViewCell并且我"删除"它....它永远不会消失,除非我在ViewController#2中创建一个新的UITableViewCell。
我尝试了什么?
self.tableView.endUpdates()
self.tableView.reloadData()
Iv字面上将reloadData()插入任何我可以查看是否会重新加载数据但它只是不会重新加载它!
let delete = UITableViewRowAction(style: .Default, title: "Delete", handler: { (action, indexPath) in
self.tableView.dataSource?.tableView?(
self.tableView,
commitEditingStyle: .Delete,
forRowAtIndexPath: indexPath
)
self.tableView.beginUpdates()
let uid = NSUserDefaults.standardUserDefaults().valueForKey("uid") as! String // uid
DataService.dataService.deleteAudio(uid, project: self.sharedRec.projectName, vocalString: self.sharedRec.audioString )
let currURL = self.sharedRec.audioString
let url = "\(currURL).caf"
//Document Directory
let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
// Full File to Delete Location
let fileURL = dirPath.stringByAppendingPathComponent(url)
// This is to print out all directory files
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!
do {
tableView.beginUpdates()
print("DELETED LOCAL RECORD")
try NSFileManager.defaultManager().removeItemAtPath(fileURL)
print("file deleted \(fileURL)")
let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
print("PRINT LOCAL DIC\(directoryContents)") // NOT WORKING
self.tableView.reloadData()
} catch {
print("error")
}
tableView.deleteRowsAtIndexPaths([NSArray arrayWithObject: indexPath], withRowAnimation: .Automatic) // SHOWS ERROR
self.tableView.endUpdates()
return
})
答案 0 :(得分:0)
commitEditingStyle
中删除数组,数据库等中的数据。