Как было сказано в заголовке, я пытаюсь создать UITableView
с пользовательскими ячейками, все работает правильно, массив для создания ячеек одинаковый и содержит элементы, но когда вы показываете приложение все ячейки недействительны
Вот код UIViewController
:
import UIKit
import FirebaseAuth
import FirebaseDatabase
class GastosViewController: UIViewController {
let idUser = Auth.auth().currentUser?.displayName
var arrayGastos = [Gastos]()
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
var ref : DatabaseReference
ref = Database.database().reference().child("Users").child(idUser!).child("Gastos")
ref.observe(.value) { (snapshot) in
let value = snapshot.value as? NSDictionary
for j in value!{
let i = j.value as? NSDictionary
let titulo = i?["Nombre"] as? String
let descripcion = i?["Descripcion"] as? String
let precio = i?["precio"] as? Float
let fecha = i?["Fecha"] as? String
let gastoAux = Gastos(titulo: titulo!, descripcion: descripcion!, precio: precio!, date: fecha!)
print(titulo, descripcion, fecha, precio)
self.arrayGastos.append(gastoAux)
}
}
// Do any additional setup after loading the view.
}
}
extension GastosViewController : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayGastos.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let fila = arrayGastos[indexPath.row]
let celda = tableView.dequeueReusableCell(withIdentifier: "CeldaGastos") as! Celda
celda.setCelda(celda: fila)
return celda
}
}
Я полагаю, что это тот код, это хорошо, но я совсем не уверен, кроме того, я добавлю код " Gastos ", что это объект, который я генерирую, чтобы добавить к массив ячеек.
import Foundation
import UIKit
class Gastos {
var titulo : String
var descripcion : String
var precio : Float
var date : String
init(titulo : String, descripcion : String, precio : Float, date : String) {
self.titulo = titulo
self.descripcion = descripcion
self.precio = precio
self.date = date
}
}
И, наконец, это мое TableViewCell
:
import UIKit
class Celda: UITableViewCell {
@IBOutlet weak var Titulo: UILabel!
@IBOutlet weak var Fecha: UILabel!
@IBOutlet weak var Precio: UILabel!
@IBOutlet weak var Descripcion: UILabel!
func setCelda(celda : Gastos){
Titulo.text = celda.titulo
Descripcion.text = celda.descripcion
Fecha.text = celda.date
Precio.text = String(celda.precio)
}
}
Я новичок в программировании Swift, так что, возможно, это глупая ошибка, мой контроллер вида и моя ячейка имеют собственный класс для них в раскадровке, но в таблице его нет, это таблица в контроллере представления. Пожалуйста, мне действительно нужна помощь, спасибо