tableView не показывает данные в быстром - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь создать tableView в viewController. Я знаю, что это раздражает, но стол выглядит намного лучше. Я также пытаюсь включить данные из Firebase, чтобы поместить в таблицу. К сожалению, когда я запускаю код, он показывает только пустую таблицу. Консоль смогла напечатать нужные данные, но они просто не будут отображаться в реальной таблице. Пожалуйста, дайте мне знать, что я делаю не так. Большое спасибо!

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!
 var user = Auth.auth().currentUser

var users = [Users]()

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.dataSource = self
    tableView.delegate = self

    self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")

    tableView.reloadData()

    fetchUser()

}
func fetchUser() {
    Database.database().reference(fromURL: "https://yala-2018.firebaseio.com/").child("users").observe(.childAdded, with: { (DataSnapshot) in


        if let dictionary = DataSnapshot.value as? [String: AnyObject] {
            let user = Users()
           // user.setValuesForKeys(dictionary)

            user.name = dictionary["name"] as! String
            user.age = dictionary["age"] as! String
            user.sex = dictionary["sex"] as! String
            self.users.append(user)
            print(user.name, user.age)
            DispatchQueue.main.async(execute: {
            self.tableView.reloadData()
            })
        }


    })
}
func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 0
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return users.count
}

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 let cell = tableView.dequeueReusableCell(withIdentifier: "guide", for: indexPath)

    let user = users[indexPath.row]
    cell.textLabel?.text = user.name
    cell.detailTextLabel?.text = "Age: \(user.age) Sex: \(user.sex)"

 // Configure the cell...

 return cell
 }

func tableView(tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

}

}

1 Ответ

0 голосов
/ 13 мая 2018

Измените это значение на 1, так как 0 означает, что нет разделов, которые будут отображать пустое табличное представление, даже если есть данные, или удалите их, так как по умолчанию это 1

func numberOfSections(in tableView: UITableView) -> Int {

   return 1
}
...