我有一个 iPad TabBar 导航应用程序,在 OrderViewController
中,我在左侧有一个表格 View ,在 view
的右侧有一个 socket ,就像某种 Split View一样 Controller 。当您单击 tableView
的 cell
时,它会在另一半屏幕上显示详细信息。当我为 A/B 测试引入两种不同的配色方案时,我使用一个开关来执行颜色更改。 tableView
的 cells
颜色切换面团不成功。在 viewWillAppear
中添加 reloadData()
并没有解决问题。
除了单元格之外,所有内容都会更新,它们保持第一次创建时的颜色。
我在整个阶段中添加了打印,并且我检测到该单元的 awakeFromNimb
仅在第一次被调用。如何在 tableView.reloadData()
上调用它?一如既往,非常感谢。
awakeFromNib():
override func awakeFromNib() {
super.awakeFromNib()
configureUi()
}
viewWillAppear():
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.configureFetchedResultsController()
orderTableView.delegate = self
orderTableView.dataSource = self
configureUI()
orderTableView.reloadData()
}
最佳答案
使用tableView委托(delegate)willDisplayCell
https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614883-tableview
class MyCustomVC: UITableViewDelegate {
override func tableView(_ tableView: UITableView,
willDisplay cell: UITableViewCell,
forRowAt indexPath: IndexPath) {
guard var cell = tableView.dequeueReusableCell(withIdentifier: "yourReuseIdentifier", for: indexPath) as? YourCustomCell else {
return UITableViewCell()
}
cell.configureUi()
}
}
关于swift - awakeFromNimb 不会在 TableView reloadData Swift 上被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042220/