gpt4 book ai didi

ios - 如何在 UITableViewDataSource 中重新加载数据

转载 作者:行者123 更新时间:2023-11-28 15:00:55 25 4
gpt4 key购买 nike

由于 UITableViewUIViewController 中,我创建了一个符合 UITableViewDataSource 协议(protocol)的类,并将其附加到 UIViewController 中的 TableView viewDidLoad() 如下所示。

委托(delegate) UIViewTableController 中的 TableView :

class TableViewController: NSObject, UITableViewDataSource, UITableViewDelegate {       
var data

// where should I do this task and how can i reload data after task?
data = asyncFuncToGetData()

// this is not working
override init() {
data = asyncFuncToGetData()
}

func tableView() {
// uses variable data
}
}

UIViewController:

class ContainerViewController: UIViewController {
@IBOutlet weak var mainTableView: UITableView!
let delegate = TableViewController()

override func viewDidLoad() {
super.viewDidLoad()

mainTableView.dataSource = delegate
mainTableView.delegate = delegate
}
}

我必须从服务器获取数据,因为表需要它。那么我应该在哪里做呢?当 UITableViewController 符合 UITableViewDataSource 协议(protocol)时,这可以很容易地完成,但我不希望那样做。

最佳答案

您可以在 ViewDidLoad 中获取您的数据,然后将其提供给您的代理:

override func viewDidLoad() {
super.viewDidLoad()

mainTableView.dataSource = delegate
mainTableView.delegate = delegate

asynFuncToGetData( { newData in
//Assign New Data to your delegate class's data
self.delegate.data = newData
//Call Reload data on tableView's instance
self.delegate.tableView()
}
}

希望对您有所帮助!

关于ios - 如何在 UITableViewDataSource 中重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48919772/

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