gpt4 book ai didi

swift - 如何调用另一个类中的函数?

转载 作者:行者123 更新时间:2023-11-30 10:34:40 25 4
gpt4 key购买 nike

我在 TableView 中遇到问题。这是包含 TableView 的类。

class LogViewController: UIViewController, UITableViewDelegate, UITableViewDataSource  {

func loadLogList() – > [String] {

}

该列表包含我的日志文件目录中的所有日志文件。在自定义 TableViewCell 中,我插入一个删除日志文件的按钮。这是用户定义的tableViewCell:

class LogTableViewCell: UITableViewCell {



@IBAction func deletePressed(_ sender: Any) {
let fileManager = FileManager.default
do {
try fileManager.removeItem(atPath: logURL!.path)
}
catch let error as NSError {
print("Fehler: \(error)")
}
}

按下按钮后,相关文件将被删除。现在我想刷新这个列表。但Button在TableViewCell类中,刷新列表的函数在TableView类中。如何刷新tableview和相应的数组?

最佳答案

您可以使用“Notification Observer”模式来实现此目的,但您可以使用此扩展访问单元格的 tableView:

extension UITableViewCell {

var tableView: UITableView? {
return (next as? UITableView) ?? (parentViewController as? UITableViewController)?.tableView
}
}

extension UIView {
var parentViewController: UIViewController? {
var parentResponder: UIResponder? = self
while parentResponder != nil {
parentResponder = parentResponder!.next
if let viewController = parentResponder as? UIViewController {
return viewController
}
}
return nil
}
}

- 现在:

您可以简单地在单元格内执行tableView?.reloadData()

关于swift - 如何调用另一个类中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331633/

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