From 451758f96d311c98b85b1625802ba9282b1327f5 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Wed, 19 Jun 2024 14:52:33 -0400 Subject: [PATCH 1/2] Restore table reload to ensure table is synced to model. --- MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift b/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift index d7c60545..ee44218e 100644 --- a/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift +++ b/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift @@ -56,14 +56,14 @@ open class ThreeLayerTableViewController: ProgrammaticTableViewController, Rotor } open override func updateUI(for molecules: [MoleculeModelProtocol]? = nil) { - let isFirstRender = self.isFirstRender super.updateUI(for: molecules) guard molecules == nil else { return } createViewForTableHeader() createViewForTableFooter() - // Reloading the table is handled in updateViews. + // Reloading the table is handled in updateViews, however, update views is on a separate rendering task than the current thread. The table render needs to be bound and settled to the new model before others put in additional update requests. + tableView.reloadData() } override open func viewDidLoad() { From efa99033e9a443f52d85d06aba3434a4f5e342b4 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Wed, 19 Jun 2024 15:30:03 -0400 Subject: [PATCH 2/2] Digital PCT265 story CXTDT-574791: Prevent additional reload tables in updateView. --- MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift b/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift index ee44218e..4bd889bd 100644 --- a/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift +++ b/MVMCoreUI/BaseControllers/ThreeLayerTableViewController.swift @@ -52,7 +52,9 @@ open class ThreeLayerTableViewController: ProgrammaticTableViewController, Rotor bottomView.updateView(width) showFooter(width) } - tableView.reloadData() + tableView.visibleCells.forEach { cell in + (cell as? MVMCoreViewProtocol)?.updateView(width) + } } open override func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {