Я хочу отобразить данные из FireBase в табличном представлении - PullRequest
0 голосов
/ 02 апреля 2019

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


Clubs- 
  Club1- 
     Name- Club1 
     date- 5/09/18

В каждой ячейке tableView я хочу видеть название моего клуба с последующей датой. Мой код компилируется нормально, но ничего не делает. Мой заголовок TableViewControllers - «Ячейка», но у меня нет идентификатора повторного использования в tableViewCell.

//
//  CoolTable.swift
//  
//
//  Created by AISD on 4/2/19.
//

import UIKit
import Firebase
import GoogleSignIn
var refa: DatabaseReference!

class CoolTable: UITableViewController{
    var posts = [eventStruct]()

    @IBOutlet var tableview: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        refa = Database.database().reference()
        loadNews()
        tableview.delegate = self
        tableview.dataSource = self


    }
    struct eventStruct {
        let name: String!
        let date: String!
    }

    func loadNews() {
        refa.child("Club").queryOrderedByKey().observe(.childAdded, with: { (snapshot) in

            if let valueDictionary = snapshot.value as? [AnyHashable:String]
            {
                let name = valueDictionary["Name"]
                let date = valueDictionary["date"]
                self.posts.insert(eventStruct(name: name, date: date), at: 0)
                self.tableview.reloadData()


            }
        })
    }

    // MARK: - Table view data source

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

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

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

        let label1 = cell.viewWithTag(1) as! UILabel
        label1.text = posts[indexPath.row].name



        let label2 = cell.viewWithTag(2) as! UILabel
        label2.text = posts[indexPath.row].date

        return cell
    }


}

1 Ответ

0 голосов
/ 02 апреля 2019
  1. Вы должны дать своей ячейке идентификатор повторного использования "Ячейка", поскольку именно это вы и пытаетесь получить.

  2. numberOfRowsInSection запрашиваетсколько строк будет в вашей таблице, в вашем случае это должно быть posts.count.

  3. В numberOfSections попробуйте просто вернуть 1.

  4. Наконец, создайте класс для вашего TableViewCell, чтобы правильно установить значения меток.Простое объяснение здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...