gpt4 book ai didi

ios - 为什么这不在 UITableView 中显示信息?

转载 作者:行者123 更新时间:2023-12-01 19:31:33 26 4
gpt4 key购买 nike

我真的很感激这方面的任何帮助。我对编码很陌生,到目前为止还没有实现这个功能。我正在寻找填充 UITableViewCell从 Firestore 收集的信息,即:title , usernamecontent .我已经能够成功打印“标题”数组,但无法将其实际填充到单元格中。
这是HomeViewController , 我的 UITableView是:

class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {


@IBOutlet weak var tableView: UITableView!

@IBOutlet weak var logoutButton: UIButton!


var postArray: [String] = []
var documents: [DocumentSnapshot] = []

let db = Firestore.firestore()
let currentUserID = Auth.auth().currentUser?.uid

// Find the UserIDs of people following
// Where Field for those UserIDs in "Posts"


override func viewDidLoad() {
super.viewDidLoad()
getFollowingPosts()
configureTableView()
}

func getFollowingPosts() {
let searchForFollowing = db.collection("users").document(currentUserID!).collection("Following")
searchForFollowing.getDocuments { (snapshot, error) in
for documents in snapshot!.documents {
let followedUID = documents.get("uid")
print(followedUID!)

self.db.collection("posts").whereField("uid", isEqualTo: followedUID!).getDocuments { (querySnapshot, error) in
for documents in querySnapshot!.documents {
let uid = documents.get("uid") as! String
let title = documents.get("Title") as! String
let ProfilePictureURL = documents.get("ProfilePictureURL") as! String
let username = documents.get("username") as! String
let content = documents.get("Content") as! String
self.postArray.append(title)
print(self.postArray)
}
self.tableView.reloadData()
}
}
}
}

func configureTableView() {
tableView.delegate = self
tableView.dataSource = self
tableView.register(PostTableViewCell.self, forCellReuseIdentifier: "PostCell")

// remove separators for empty cells
tableView.tableFooterView = UIView()
// remove separators from cells
tableView.separatorStyle = .none
}

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath) as! PostTableViewCell
let post = postArray[indexPath.row]
return cell
}


}
这是我的 PostTableViewCell :
class PostTableViewCell: UITableViewCell {

@IBOutlet weak var usernameLabel: UILabel!

@IBOutlet weak var titleLabel: UILabel!

@IBOutlet weak var contentLabel: UILabel!


override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
addSubview(usernameLabel)
addSubview(titleLabel)
addSubview(contentLabel)

}




}
如果有人可以提供帮助,我们将不胜感激。就像我说的,我一直在努力解决这个问题。

最佳答案

您似乎没有将数据设置到单元格中的任何内容上。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath) as! PostTableViewCell
let post = postArray[indexPath.row]
cell.titleLabel.text = post
return cell
}
另外,如果您使用的是 nib,请修改 register 方法
func configureTableView() {
//...
tableView.register(UINib(nibName: "PostCell", bundle: nil), forCellReuseIdentifier: "PostCell")
//...
}
注意:确保 nib 文件的 nib 标识符设置为“PostCell”。

关于ios - 为什么这不在 UITableView 中显示信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62493697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com