two typo fix
list and stack template required molecules
This commit is contained in:
parent
98a5e33caf
commit
6fde7bc8b4
@ -218,7 +218,7 @@
|
|||||||
__block BOOL newData = NO;
|
__block BOOL newData = NO;
|
||||||
[pageTypesListeningFor enumerateObjectsUsingBlock:^(NSString * _Nonnull pageToListenFor, NSUInteger idx, BOOL * _Nonnull stop) {
|
[pageTypesListeningFor enumerateObjectsUsingBlock:^(NSString * _Nonnull pageToListenFor, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||||
NSDictionary *page = [pages dict:pageToListenFor];
|
NSDictionary *page = [pages dict:pageToListenFor];
|
||||||
NSString *pageType = [pages string:KeyPageType];
|
NSString *pageType = [page string:KeyPageType];
|
||||||
if (page && [pageType isEqualToString:self.pageType]) {
|
if (page && [pageType isEqualToString:self.pageType]) {
|
||||||
newData = [self newPageLoaded:page];
|
newData = [self newPageLoaded:page];
|
||||||
*stop = YES;
|
*stop = YES;
|
||||||
|
|||||||
@ -188,7 +188,7 @@ public class MoleculeStackView: ViewConstrainingView {
|
|||||||
if let moleculeJSON = map.optionalDictionaryForKey(KeyMolecule) {
|
if let moleculeJSON = map.optionalDictionaryForKey(KeyMolecule) {
|
||||||
var view: UIView?
|
var view: UIView?
|
||||||
if let item = items?[index] {
|
if let item = items?[index] {
|
||||||
item.update(with: moleculeJSON)
|
item.update(with: map)
|
||||||
view = item.view
|
view = item.view
|
||||||
(view as? MVMCoreUIMoleculeViewProtocol)?.setWithJSON(moleculeJSON, delegateObject: delegateObject, additionalData: nil)
|
(view as? MVMCoreUIMoleculeViewProtocol)?.setWithJSON(moleculeJSON, delegateObject: delegateObject, additionalData: nil)
|
||||||
addStackItem(item, lastItem: index == molecules.count - 1)
|
addStackItem(item, lastItem: index == molecules.count - 1)
|
||||||
|
|||||||
@ -10,6 +10,21 @@ import UIKit
|
|||||||
|
|
||||||
open class MoleculeListTemplate: ThreeLayerTableViewController {
|
open class MoleculeListTemplate: ThreeLayerTableViewController {
|
||||||
var moleculesInfo: [(identifier: String, class: AnyClass, molecule: [AnyHashable: Any])]?
|
var moleculesInfo: [(identifier: String, class: AnyClass, molecule: [AnyHashable: Any])]?
|
||||||
|
var observer: NSKeyValueObservation?
|
||||||
|
|
||||||
|
open override var loadObject: MVMCoreLoadObject? {
|
||||||
|
didSet {
|
||||||
|
if loadObject != oldValue {
|
||||||
|
updateRequiredModules()
|
||||||
|
observer?.invalidate()
|
||||||
|
if let newObject = loadObject {
|
||||||
|
observer = newObject.observe(\MVMCoreLoadObject.pageJSON, options: [.old, .new]) { [weak self] (object, change) in
|
||||||
|
self?.updateRequiredModules()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
open override func viewForTop() -> UIView {
|
open override func viewForTop() -> UIView {
|
||||||
guard let moleculeJSON = loadObject?.pageJSON?.optionalDictionaryForKey("header"),
|
guard let moleculeJSON = loadObject?.pageJSON?.optionalDictionaryForKey("header"),
|
||||||
@ -128,12 +143,20 @@ open class MoleculeListTemplate: ThreeLayerTableViewController {
|
|||||||
moleculesInfo = moleculeList
|
moleculesInfo = moleculeList
|
||||||
}
|
}
|
||||||
|
|
||||||
open override func requiredModules(fromPageJSON page: [AnyHashable : Any]?) -> [Any]? {
|
/// Adds modules from requiredModules() to the MVMCoreViewControllerMapping.requiredModules map.
|
||||||
|
open func updateRequiredModules() {
|
||||||
|
if let requiredModules = requiredModules(), let pageType = pageType {
|
||||||
|
MVMCoreViewControllerMappingObject.shared()?.addRequiredModules(toMapping: requiredModules, forPageType: pageType)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Gets modules required by the loadObject.pageJSON.
|
||||||
|
open func requiredModules() -> [Any]? {
|
||||||
let modules: NSMutableArray = []
|
let modules: NSMutableArray = []
|
||||||
let delegate = delegateObject() as? MVMCoreUIDelegateObject
|
let delegate = delegateObject() as? MVMCoreUIDelegateObject
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: page?.optionalDictionaryForKey("header"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("header"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: page?.optionalDictionaryForKey("footer"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("footer"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
if let molecules = page?.optionalArrayForKey(KeyMolecules) as? [[AnyHashable: Any]] {
|
if let molecules = loadObject?.pageJSON?.optionalArrayForKey(KeyMolecules) as? [[AnyHashable: Any]] {
|
||||||
for molecule in molecules {
|
for molecule in molecules {
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: molecule, delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: molecule, delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,21 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
public class MoleculeStackTemplate: ThreeLayerViewController {
|
public class MoleculeStackTemplate: ThreeLayerViewController {
|
||||||
|
var observer: NSKeyValueObservation?
|
||||||
|
|
||||||
|
open override var loadObject: MVMCoreLoadObject? {
|
||||||
|
didSet {
|
||||||
|
if loadObject != oldValue {
|
||||||
|
updateRequiredModules()
|
||||||
|
observer?.invalidate()
|
||||||
|
if let newObject = loadObject {
|
||||||
|
observer = newObject.observe(\MVMCoreLoadObject.pageJSON, options: [.old, .new]) { [weak self] (object, change) in
|
||||||
|
self?.updateRequiredModules()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override func spaceBetweenTopAndMiddle() -> CGFloat? {
|
public override func spaceBetweenTopAndMiddle() -> CGFloat? {
|
||||||
return 0
|
return 0
|
||||||
@ -50,17 +65,20 @@ public class MoleculeStackTemplate: ThreeLayerViewController {
|
|||||||
return loadObject?.requestParameters?.modules
|
return loadObject?.requestParameters?.modules
|
||||||
}
|
}
|
||||||
|
|
||||||
open override func requiredModules(fromPageJSON page: [AnyHashable : Any]?) -> [Any]? {
|
/// Adds modules from requiredModules() to the MVMCoreViewControllerMapping.requiredModules map.
|
||||||
return modulesNeeded() as? [Any]
|
open func updateRequiredModules() {
|
||||||
|
if let requiredModules = requiredModules(), let pageType = pageType {
|
||||||
|
MVMCoreViewControllerMappingObject.shared()?.addRequiredModules(toMapping: requiredModules, forPageType: pageType)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the modules needed.
|
/// Gets modules required by the loadObject.pageJSON.
|
||||||
func modulesNeeded() -> NSMutableArray? {
|
open func requiredModules() -> [Any]? {
|
||||||
let modules: NSMutableArray = []
|
let modules: NSMutableArray = []
|
||||||
let delegate = delegateObject() as? MVMCoreUIDelegateObject
|
let delegate = delegateObject() as? MVMCoreUIDelegateObject
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("header"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("header"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("footer"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("footer"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("moleculeStack"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: loadObject?.pageJSON?.optionalDictionaryForKey("moleculeStack"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||||
return modules.count > 0 ? modules : nil
|
return modules as? [Any]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user