diff --git a/MVMCoreUI/BaseControllers/MFViewController+Model.swift b/MVMCoreUI/BaseControllers/MFViewController+Model.swift index 264592c0..b3ff4ec6 100644 --- a/MVMCoreUI/BaseControllers/MFViewController+Model.swift +++ b/MVMCoreUI/BaseControllers/MFViewController+Model.swift @@ -33,8 +33,5 @@ extension MFViewController: MoleculeDelegateProtocol { public extension MFViewController { @objc func parsePageJSON() { - (self as? TemplateProtocol)?.parseTemplateJSON() } } - -//MoleculeDelegateProtocol diff --git a/MVMCoreUI/Models/ModelProtocols/TemplateProtocol.swift b/MVMCoreUI/Models/ModelProtocols/TemplateProtocol.swift index c6fd38cd..8293f18b 100644 --- a/MVMCoreUI/Models/ModelProtocols/TemplateProtocol.swift +++ b/MVMCoreUI/Models/ModelProtocols/TemplateProtocol.swift @@ -8,18 +8,14 @@ import Foundation -public protocol TemplateProtocol { +public protocol TemplateProtocol: class { associatedtype TemplateModel: TemplateModelProtocol var templateModel: TemplateModel? { get set } } -public extension TemplateProtocol { - -} - public extension TemplateProtocol where Self: MFViewController { - mutating func parseTemplateJSON() { - guard let pageJSON = loadObject?.pageJSON as? [String: AnyHashable] else { return } + func parseTemplateJSON() { + guard let pageJSON = self.loadObject?.pageJSON as? [String: AnyHashable] else { return } do { let data = try JSONSerialization.data(withJSONObject: pageJSON) let decoder = JSONDecoder() @@ -30,12 +26,3 @@ public extension TemplateProtocol where Self: MFViewController { } } } - -class Testing: MFViewController, TemplateProtocol { - typealias TemplateModel = StackPageTemplateModel - var templateModel: StackPageTemplateModel? - - public func parsePageJSON() { - parseTemplateJSON() - } -} diff --git a/MVMCoreUI/Templates/MoleculeListTemplate.swift b/MVMCoreUI/Templates/MoleculeListTemplate.swift index c78fe19c..7b572c44 100644 --- a/MVMCoreUI/Templates/MoleculeListTemplate.swift +++ b/MVMCoreUI/Templates/MoleculeListTemplate.swift @@ -14,8 +14,7 @@ open class MoleculeListTemplate: ThreeLayerTableViewController, TemplateProtocol var observer: NSKeyValueObservation? public var templateModel: ListPageTemplateModel? - - public func parsePageJSON() { + public override func parsePageJSON() { parseTemplateJSON() } diff --git a/MVMCoreUI/Templates/MoleculeStackTemplate.swift b/MVMCoreUI/Templates/MoleculeStackTemplate.swift index 7c75a555..3dc9a58c 100644 --- a/MVMCoreUI/Templates/MoleculeStackTemplate.swift +++ b/MVMCoreUI/Templates/MoleculeStackTemplate.swift @@ -12,6 +12,9 @@ open class MoleculeStackTemplate: ThreeLayerViewController, TemplateProtocol { var observer: NSKeyValueObservation? public var templateModel: StackPageTemplateModel? + public override func parsePageJSON() { + parseTemplateJSON() + } open override var loadObject: MVMCoreLoadObject? { didSet { diff --git a/MVMCoreUI/Templates/ThreeLayerTemplate.swift b/MVMCoreUI/Templates/ThreeLayerTemplate.swift index c6ceb97c..67326d09 100644 --- a/MVMCoreUI/Templates/ThreeLayerTemplate.swift +++ b/MVMCoreUI/Templates/ThreeLayerTemplate.swift @@ -11,7 +11,10 @@ import UIKit @objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol { public var templateModel: ThreeLayerPageTemplateModel? - + public override func parsePageJSON() { + parseTemplateJSON() + } + override open func viewDidLoad() { super.viewDidLoad() bottomViewOutsideOfScroll = true