使用Swift 3从Firebase检索到的数据填充TableView
问题描述:
我试图检索数据并将其设置为tableview;我没有在这方面取得成功。使用Swift 3从Firebase检索到的数据填充TableView
我想从firebase中获取图像和文本到tableView中;
import UIKit
import Firebase
class HomePageViewController: UIViewController, UITableViewDelegate {
@IBOutlet weak var homePageTableView: UITableView!
var ref: DatabaseReference!
var imageFiles = [Data]()
var price = [String]()
var refHandle:UInt!
override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference()
fetchUsers()
func fetchUsers() {
refHandle = ref.child("Users").observe(.childAdded, with: { (<#DataSnapshot#>) in
if let retrivedData = DataSnapshot.value(String : AnyObject) {
???
}
})
我知道这是未完成的,但我不知道如何从这一点继续。我如何设置它到表?以及如何正确检索数据。 使用最新的更新版本的Firebase SDK和swift 3.0无法找到任何有关此文档的信息
答
最佳实践是将检索到的数据提供给模型对象并提供给表视图。
这是对象如何模态的样子:
class Person {
var firstname: String
var lastname: String
init(firstname: String, lastname: String) {
self.firstname = firstname
self.lastname = lastname
}
}
现在你必须从你得到了火力的JSON
数据提供给该模型对象。一旦你的模型对象准备好了,你必须加载tableview。 Tableview有data source
方法。使用它们来显示如何在tableview中填充数据。
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return modelObjectsArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell")!
let modelObject = self.modelObjectsArray[indexPath.row] as! Person
cell.textLabel?.text = modelObject.firstname
return cell
}
那么这将如何用于我的情况呢?通过检索Firebase数据并将其设置为tableView ... Firebase方式.. – StrawHat
您已经retrivedData。现在创建一个模型对象类并为其分配数据。分配它后重新加载tableview –
看看这个:https://www.codementor.io/brettr/two-basic-ways-to-populate-your-uitableview-du107rsyx –