首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何清除TableView并重新加载数据?

如何清除TableView并重新加载数据?
EN

Stack Overflow用户
提问于 2018-05-28 19:43:38
回答 2查看 1.2K关注 0票数 0

我有一个这样的函数,当我用按钮重新加载这个函数时,collectionViewTable第二次显示相同的数据,.How,我能解决吗??

代码语言:javascript
复制
func getWallpaperFromDB(){
        let databaseRef = Database.database().reference()
        databaseRef.child("wallpapers").observe(DataEventType.childAdded) { (snapshot) in
            if let value = snapshot.value! as? [String: Any] {
                let categoryID = value["categoryID"] as! String
                let categoryName = value["categoryName"] as! String
                let wallpaperName = value["wallpaperName"] as! String
                let wallpaperId = snapshot.key
                let DBWallpaper = Wallpaper(categoryID: categoryID, categoryName: categoryName, wallpaperId: wallpaperId, wallpaperName: wallpaperName)
                self.wallpapers.append(DBWallpaper)
                self.collectionViewTable.reloadData()
            }

        }
    }

@IBAction func slideMenuButton(_ sender: Any) {
        getWallpaperFromDB()
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-28 19:51:04

你需要清除所有的呼叫

代码语言:javascript
复制
@IBAction func slideMenuButton(_ sender: Any) {
    wallpapers.removeAll()
    getWallpaperFromDB()
}
票数 1
EN

Stack Overflow用户

发布于 2020-09-14 22:42:28

你可以在闭包函数中清空你的墙纸数组。这样,每次调用函数时,在再次获取数据之前,墙纸数组将为空。这样你就不会有重复的数据了。

代码语言:javascript
复制
func getWallpaperFromDB(){

        let databaseRef = Database.database().reference()
        databaseRef.child("wallpapers").observe(DataEventType.childAdded) { (snapshot) in
            
            self.wallpapers = [] 
            
            if let value = snapshot.value! as? [String: Any] {
                let categoryID = value["categoryID"] as! String
                let categoryName = value["categoryName"] as! String
                let wallpaperName = value["wallpaperName"] as! String
                let wallpaperId = snapshot.key
                let DBWallpaper = Wallpaper(categoryID: categoryID, categoryName: categoryName, wallpaperId: wallpaperId, wallpaperName: wallpaperName)
                self.wallpapers.append(DBWallpaper)
                self.collectionViewTable.reloadData()
            }

        }
    }

@IBAction func slideMenuButton(_ sender: Any) {
        getWallpaperFromDB()
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50565640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档