Ios UITableView单元格内容未显示swift

Ios UITableView单元格内容未显示swift,ios,swift,uitableview,tableview,Ios,Swift,Uitableview,Tableview,我试图在tableview单元格上显示标题标签,但运行时没有显示任何内容。我还试着把一个标准标签放进电池,但当我运行它时,它消失了 import UIKit import Firebase import FirebaseDatabase import SDWebImage struct postTry { let title : String! } class CarMakeViewController: UIViewController, UITableViewDataSource

我试图在tableview单元格上显示标题标签,但运行时没有显示任何内容。我还试着把一个标准标签放进电池,但当我运行它时,它消失了

import UIKit
import Firebase
import FirebaseDatabase
import SDWebImage

struct postTry {
    let title : String!
}

class CarMakeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate  {
    var posts = [postTry]()

    override func viewDidLoad() {
        super.viewDidLoad()

        let ref = Database.database().reference().child("Posts")

        ref.observeSingleEvent(of: .value, with: { snapshot in
            print(snapshot.childrenCount)

            for rest in snapshot.children.allObjects as! [DataSnapshot] {
                guard let value = rest.value as? Dictionary<String,Any> else { continue }

                guard let  title = value["Title"] as? String else { continue }

                let post = postTry(title: title)

                self.posts.append(post)
            }

            self.posts = self.posts.reversed();
            self.tableView.reloadData()
        })
    }

    @IBOutlet weak var tableView: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return posts.count
    }

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

        let label1 = cell?.viewWithTag(21) as! UILabel
        label1.text = posts[indexPath.row].title

        return cell!
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "makemodel" {
            if let indexPath = tableView.indexPathForSelectedRow {
                let destVC = segue.destination as! DetailNewsViewController
                destVC.titleText =  posts[indexPath.row].title

            }
        }
    }
}
导入UIKit
进口火基
导入FirebaseDatabase
导入SDWebImage
结构后验{
让标题:字符串!
}
类CarMakeViewController:UIViewController、UITableViewDataSource、UITableViewDelegate{
var posts=[postry]()
重写func viewDidLoad(){
super.viewDidLoad()
让ref=Database.Database().reference().child(“Posts”)
ref.observeSingleEvent(的值为:,其中:{snapshot in
打印(快照.childrenCount)
对于snapshot.children.allObjects中的rest![DataSnapshot]{
guard let value=rest.value as?Dictionary else{continue}
guard let title=值[“title”]为字符串,否则{continue}
让post=postry(标题:title)
self.posts.append(post)
}
self.posts=self.posts.reversed();
self.tableView.reloadData()
})
}
@IBVAR表格视图:UITableView!
func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
返回岗位数
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
let cell=tableView.dequeueReusableCell(标识符为:“cellMake”)
设label1=单元格?.viewWithTag(21)为!UILabel
label1.text=posts[indexPath.row].title
返回单元!
}
覆盖功能准备(对于segue:UIStoryboardSegue,发送方:有吗?){
如果segue.identifier==“makemodel”{
如果让indexPath=tableView.indexPathForSelectedRow{
设destVC=segue.destination为!DetailNewsViewController
destVC.titleText=posts[indexPath.row].title
}
}
}
}
首先尝试以下操作: 将cellForRowAt方法更改为:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellMake", for: indexPath) as! UITableViewCell
    let post = posts[indexPath.row]
    cell.textLabel.text = post.title

    return cell
}
如果您已经正确设置了tableview,并且确信正在从Firebase接收对象,那么这应该可以工作


如果有帮助,请告诉我。

您需要将tableView委托给ViewController类

tableView.delegate = self
tableView.datasource = self

创建一个单独的.xib文件,在该文件中创建一个新的表视图单元格,用于保存单元格和标签。