gpt4 book ai didi

ios - 有没有一种方法可以通过其中一个单元格中的按钮刷新整个 UITableView?

转载 作者:搜寻专家 更新时间:2023-11-01 06:05:05 24 4
gpt4 key购买 nike

我有一个动态生成的 UITableView,其中包含许多动态 UITableViewCells 和一个静态 UITableViewCell

静态的有一个按钮,我想在用户按下它时刷新整个 TableView 。

我附加到单元格的代码很简单:

class MyStaticCell: UITableViewCell {

@IBOutlet weak var sendCommentButton: UIButton!

@IBAction func sendCommentButtonAction(sender: AnyObject) {

//from here I want to refresh the table

}
}

如何从该按钮刷新父表?在 MyStaticCell 类中,我没有表的任何实例,所以这是我现在的问题:|

最佳答案

最简洁的方法是通过委托(delegate)。这确保了单元类不需要知道按下按钮时会发生什么;该逻辑可以保留在它所属的 View Controller 中。

protocol CommentButtonProtocol {

func commentButtonTapped(sender: MyStaticCell)
}

class MyStaticCell: UITableViewCell {

@IBOutlet weak var sendCommentButton: UIButton!

var delegate: CommentButtonProtocol?

@IBAction func sendCommentButtonAction(sender: AnyObject) {

self.delegate?.commentButtonTapped(self)

}
}

然后在您的 View Controller 中,您可以将其设置为 cellForRowAtIndexPath 中的委托(delegate)并遵守协议(protocol)以处理事件:

class ViewController: UIViewController, CommentButtonProtocol {

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("staticCell", forIndexPath: indexPath) as! MyStaticCell
cell.delegate = self
return cell
}

func commentButtonTapped(sender: MyStaticCell) {
// Do whatever you need to do when the button is tapped
}

}

关于ios - 有没有一种方法可以通过其中一个单元格中的按钮刷新整个 UITableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39671291/

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