作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如标题所说,我只想调用一次reloadtableview()。我该如何处理?这是我的代码:
var posts = [Post]() {
didSet {
posts.reverse()
self.tableView.reloadData()
}
}
func fetchData(){
currentQuery.observe(.value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [DataSnapshot]{
var foundPosts = [Post]()
for snap in snapshot {
if let postDict = snap.value as? Dictionary<String, Any>{
let key = snap.key
let post = Post.init(postKey: key, postData: postDict)
foundPosts.append(post)
}
}
self.posts = foundPosts
geoQuery?.removeAllObservers()
}
})
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
fetchData()
// if I put "tableView.reloadData()" here, it wont load when the app opens for the first time
}
有了这个,每当数据库中发生更改时,tableview 都会重新加载。我只想重新加载它一次,但仍然有那个观察者。
最佳答案
如果我没理解错的话,下面的代码应该可以满足您的需求。 (没法挤进评论里)
var shouldReloadTableView = true
var posts = [Post]() {
didSet {
posts.reverse()
guard shouldReloadTableView else { return }
shouldReloadTableView = false
self.tableView.reloadData()
}
}
关于ios - 使用 Firebase 观察函数时仅调用一次 reloadtableview(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49620104/
我有一个tableView和一个segmentControlView,它们从数据库执行不同的查询,但我无法重新加载表。如果我手动重新加载数据更改。 override func queryForTabl
正如标题所说,我只想调用一次reloadtableview()。我该如何处理?这是我的代码: var posts = [Post]() { didSet { p
我是一名优秀的程序员,十分优秀!