// // ThreeLayerTemplate.swift // MVMCoreUI // // Created by Scott Pfeil on 7/23/19. // Copyright © 2019 Verizon Wireless. All rights reserved. // import UIKit @objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol { public var templateModel: TemplateModelProtocol? public func parseTemplateJSON() { guard let templateData = templateData() else { return } do { let decoder = JSONDecoder() let templateModel = try decoder.decode(StackPageTemplateModel.self, from: templateData) self.templateModel = templateModel } catch { MVMCoreUILoggingHandler.logDebugMessage(withDelegate: "error: \(error)") } } override open func viewDidLoad() { super.viewDidLoad() bottomViewOutsideOfScroll = true // Do any additional setup after loading the view. } open override func newDataBuildScreen() { super.newDataBuildScreen() heightConstraint?.isActive = true } open override func viewForTop() -> UIView? { guard let headerModel = (templateModel as? ThreeLayerPageTemplateModel)?.header, let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(headerModel, delegateObject() as? MVMCoreUIDelegateObject, true) else { return nil } return molecule } open override func viewForMiddle() -> UIView? { guard let middleModel = (templateModel as? ThreeLayerPageTemplateModel)?.middle, let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(middleModel, delegateObject() as? MVMCoreUIDelegateObject, true) else { return nil } return molecule } override open func viewForBottom() -> UIView? { guard let footerModel = (templateModel as? ThreeLayerPageTemplateModel)?.footer, let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(footerModel, delegateObject() as? MVMCoreUIDelegateObject, true) else { return nil } return molecule } open override func spaceBetweenMiddleAndBottom() -> CGFloat? { return 0 } open override func spaceBetweenTopAndMiddle() -> CGFloat? { return 0 } }