diff --git a/MVMCoreUI/Atomic/Atoms/Views/TileContainer.swift b/MVMCoreUI/Atomic/Atoms/Views/TileContainer.swift index 77f32707..57b8b8f2 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/TileContainer.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/TileContainer.swift @@ -42,7 +42,8 @@ open class TileContainer: VDS.TileContainer, VDSMoleculeViewProtocol{ public func viewModelDidUpdate() { if let moleculeModel = viewModel.molecule { - if let molecule { + if let molecule, + moleculeModel.moleculeName == molecule.model?.moleculeName { molecule.set(with: moleculeModel, delegateObject, additionalData) } else if let moleculeView = ModelRegistry.createMolecule(moleculeModel, delegateObject: delegateObject, additionalData: additionalData) { molecule = moleculeView @@ -106,10 +107,13 @@ open class TileContainer: VDS.TileContainer, VDSMoleculeViewProtocol{ /// Allows the molecule to set its name for reuse. Default could be moleculeName. Mainly used for list or collections. public static func nameForReuse(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> String? { // This will aggregate names of molecules to make an id. - guard let model = model as? ButtonGroupModel else { - return "tileContainer<>" - } - return "tileContainer<\(model.moleculeName)>" + guard let containerModel = model as? TileContainerModel, + let molecule = containerModel.molecule, + let moleculeClass = ModelRegistry.getMoleculeClass(molecule), + let moleculeName = moleculeClass.nameForReuse(with: molecule, delegateObject) + else { return "\(model.moleculeName)<>" } + + return "\(model.moleculeName)<\(moleculeName)>" } //--------------------------------------------------