Вам, конечно, нужно создать tableViewController и связать его с TableView и назначить вашей ячейке собственный идентификатор, но это хорошее представление о том, что вам нужно сделать в вашем собственном tableViewController:
class tableViewController: UITableViewController {
var dataArray = [String]()
var ref = Database.database().reference() //You didn't include your delcaration of ref in your code, so don't use this, just use the one you were already using.
override func viewDidLoad() {
super.viewDidLoad()
retrieve()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
let data = dataArray[indexPath.row]
cell.textLabel?.text = data
return cell
}
func retrieve(){
let userId = Auth.auth().currentUser?.uid
let intakeRef = Database.database().reference().child("Users").child(userId!).child("Intake")
intakeRef.observeSingleEvent(of: .value, with: { (snapshot) in
if let intake = snapshot.value{
self.ref.child("Attendance").child("Checkin").child(intake as! String).child(userId!).child("BM050-3-3-IMNPD").observe(.value, with: { (snapshot) in
for child in snapshot.children{
let key = (child as AnyObject).key as String
self.dataArray.append(key)
}
})
self.tableView.reloadData()
}
}) { (Error) in
print("unable to retrieve name from nameRef")
}
}
}
Опять же, вам нужно создать свой собственный UItableView
, связать его с UITableViewController
, назначить свой собственный идентификатор повторного использования ячейки и убедиться, что в cellForRowAt указан правильный идентификатор повторного использования, и вам нужно будет замените переменную ref
в предоставленном мной коде на ref
, которую вам нужно использовать.