gpt4 book ai didi

ios - 如何从 tableView 重新加载表格?

转载 作者:行者123 更新时间:2023-11-28 14:36:01 25 4
gpt4 key购买 nike

如何从自定义单元格重新加载 tableView?如果单击按钮,则单元格内部有两个按钮,表格应重新加载。我试图在 UITableViewCell 文件中添加协议(protocol),并在单击按钮后重新加载它,但未调用 UITableViewController 中的协议(protocol)函数。

这里是 UITableViewCell 中的代码:

protocol reloadTableDelegate  {
func reloadTableonClick()
}

class TableViewCell: UITableViewCell {
var delegate : reloadTableDelegate?

@IBOutlet weak var button2: UIButton!
@IBOutlet weak var button1: UIButton!

var button1Clicked = false
var button2clicked = false


@IBAction func button1Action(_ sender: Any) {
button2clicked = true
delegate?.reloadTableonClick()
}
@IBAction func button2Action(_ sender: Any) {
delegate?.reloadTableonClick()
}

}

这就是我在 UITableView 中重新加载表所做的事情:

extension TableViewController : reloadTableDelegate {
func reloadTableonClick() {
tableView.reloadData()
}

}

最佳答案

首先,您需要向按钮添加一个 Action 。你可以这样做:

if myButton.target(forAction: #selector(self.myButtonTapped()), withSender: nil) == nil { //Check that we don't add it multiple times
myButton.addTarget(self, action: #selector(self.myButtonTapped()), for: .touchUpInside)
}

此行必须位于 cellForRowAtIndexPath 内。

然后在你的 View Controller 中做一个像这样的函数:

func myButtonTapped() {
self.tableView.reloadData()
}

根据您在代码中提供的示例,您还应该将委托(delegate)设置为单元格。 cellForRowAtIndexPath 中的含义你应该设置:

myCell.delegate = self

然后在您的 View Controller 中像您已经在做的那样实现这些方法。

关于ios - 如何从 tableView 重新加载表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50871985/

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