swift - awakeFromNimb 不会在 TableView reloadData Swift 上被调用

标签 swift uitableview

我有一个 iPad TabBar 导航应用程序,在 OrderViewController 中,我在左侧有一个表格 View ,在 view 的右侧有一个 socket ,就像某种 Split View一样 Controller 。当您单击 tableViewcell 时,它会在另一半屏幕上显示详细信息。当我为 A/B 测试引入两种不同的配色方案时,我使用一个开关来执行颜色更改。 tableViewcells 颜色切换面团不成功。在 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/

相关文章:

swift - NSTimer 选择器中的多个参数

ios - Swift - 来自 TableView 的协议(protocol)委托(delegate)不起作用 - 模态呈现

ios - 自定义UITableView单元格,UIImage从边界到边界

ios - 每秒保存到核心数据性能

ios - 如何知道 UIBarButtonItem 是否被按下?

支持调试器的 Swift Playground ?

ios - 在 iOS 上使用 MDCBottomNavigationBar 切换 View Controller

ios - 如何获取数据保存到 TableView 中的特定类别而不是所有类别?

iphone - resignFirstResponder 未按预期工作

ios - 在 UITableView 中仅重新加载一个部分标题