我想知道如何将数据从ViewController传递到单元格?
我是初学者,所以我可以监督显而易见的事情:P
我有一个家庭VC,当你按下commentButton时,你会到达CommentVC,后者持有帖子的postId。 因为我希望能够喜欢评论(它完美地运作)并且注意到用户关于他的评论被喜欢(现在不起作用)我需要将postId放在commentVC中(其中包含正确的评论) )但也在细胞中。
这是我将数据从HomeVc传递到CommentVC
的代码 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "CommentSegue" {
let commentVC = segue.destination as! CommentViewController
let commentCell = CommentTableViewCell()
let postId = sender as! String
commentCell.postId = postId
commentVC.postId = postId
}
}
当我在CommentVc和CommentCell中打印出两个变量时,只有CommentVc显示正确的变量,而Cell有“nil”作为打印输出语句。
任何想法我怎么能通过它?
答案 0 :(得分:2)
您不应该通过调用自定义类初始化程序来自己实例化UITableViewCell
,但您应该在UITableViewController
类(或符合UITableViewContollerDataSource
协议的类)中执行此操作。
使用tableView(_:cellForRowAt:)
创建单元格时,将要在单元格中显示的数据传递到表格视图控制器和数据源方法(例如dequeueReusableCell(withIdentifier:)
)中,将数据分配给特定单元格
答案 1 :(得分:1)
您在哪里执行打印声明?通常,建议将任何数据传递到cellForRow
TableView
委托方法的configure(_ myId: String)
中的单元格视图。在单元格类中,您可以使用{{1}}方法,将id作为要传入的parm之一。然后在该方法中打印。
答案 2 :(得分:1)
您不应传递表格单元格。由于您已将postId传递给注释视图控制器,因此您可以通过这种方式从注释视图控制器中的表视图单元访问此ID
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "EditorFontCell") as! EditorFontCell
print(self.postId)
//do what you want with postId with the current cell object here
return cell
}
现在删除segue中的单元格
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "CommentSegue" {
let commentVC = segue.destination as! CommentViewController
let postId = sender as! String
commentVC.postId = postId
}
}
答案 3 :(得分:0)
$(".dropdown-content>li>a").css("color", themeColor);