繁体   English   中英

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

[英]How to clear TableView and reload data again?

我有一个这样的功能,当我用按钮重新加载时,这个功能 collectionViewTable 第二次显示相同的数据。我该如何解决?

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()
    }

你需要清除每一个电话

@IBAction func slideMenuButton(_ sender: Any) {
    wallpapers.removeAll()
    getWallpaperFromDB()
}

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

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()
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM