tableView 函数在填充数组之前运行
tableView function runs before array is populated
我正在尝试填充 Table 视图,但我认为我的函数 运行 的顺序有误。
我有一个填充数组的简单函数 loadSampleAssignments()。如果我直接在 viewDidLoad 中调用该函数,我的 table 会正确填充。
问题是我需要在这段代码中从Auth0成功响应后调用代码:
fileprivate func retrieveProfile() {
guard let accessToken = loginCredentials.accessToken else { return }
Auth0
.authentication()
.userInfo(token: accessToken)
.start { result in
switch result {
case .success( _):
self.loadSampleAssignments()
case .failure( _): break
}
}
}
不幸的是,当我在这里调用函数时,我的 UI 更新为一个空数组。我可以看到调用了 loadSampleAssignments(),但它是在我的 cellForRowAt 函数更新了 table 个单元格之后。
有没有办法在我的 loadSampleAssignments 函数中手动调用 cellForRowAt 函数?
我已经被困了好几天了,非常感谢任何帮助!谢谢!
在您准备好重新填充 table 时,调用 tableView.reloadData()
,这将触发 cellForRow
。在数据准备好显示之前 cellForRow
也被触发不是问题 - 这是正常的,并不意味着您做错了什么。
我正在尝试填充 Table 视图,但我认为我的函数 运行 的顺序有误。
我有一个填充数组的简单函数 loadSampleAssignments()。如果我直接在 viewDidLoad 中调用该函数,我的 table 会正确填充。
问题是我需要在这段代码中从Auth0成功响应后调用代码:
fileprivate func retrieveProfile() {
guard let accessToken = loginCredentials.accessToken else { return }
Auth0
.authentication()
.userInfo(token: accessToken)
.start { result in
switch result {
case .success( _):
self.loadSampleAssignments()
case .failure( _): break
}
}
}
不幸的是,当我在这里调用函数时,我的 UI 更新为一个空数组。我可以看到调用了 loadSampleAssignments(),但它是在我的 cellForRowAt 函数更新了 table 个单元格之后。
有没有办法在我的 loadSampleAssignments 函数中手动调用 cellForRowAt 函数?
我已经被困了好几天了,非常感谢任何帮助!谢谢!
在您准备好重新填充 table 时,调用 tableView.reloadData()
,这将触发 cellForRow
。在数据准备好显示之前 cellForRow
也被触发不是问题 - 这是正常的,并不意味着您做错了什么。