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;
|
||||
[pageTypesListeningFor enumerateObjectsUsingBlock:^(NSString * _Nonnull pageToListenFor, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
NSDictionary *page = [pages dict:pageToListenFor];
|
||||
NSString *pageType = [pages string:KeyPageType];
|
||||
NSString *pageType = [page string:KeyPageType];
|
||||
if (page && [pageType isEqualToString:self.pageType]) {
|
||||
newData = [self newPageLoaded:page];
|
||||
*stop = YES;
|
||||
|
||||
@ -188,7 +188,7 @@ public class MoleculeStackView: ViewConstrainingView {
|
||||
if let moleculeJSON = map.optionalDictionaryForKey(KeyMolecule) {
|
||||
var view: UIView?
|
||||
if let item = items?[index] {
|
||||
item.update(with: moleculeJSON)
|
||||
item.update(with: map)
|
||||
view = item.view
|
||||
(view as? MVMCoreUIMoleculeViewProtocol)?.setWithJSON(moleculeJSON, delegateObject: delegateObject, additionalData: nil)
|
||||
addStackItem(item, lastItem: index == molecules.count - 1)
|
||||
|
||||
@ -10,7 +10,22 @@ import UIKit
|
||||
|
||||
open class MoleculeListTemplate: ThreeLayerTableViewController {
|
||||
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 {
|
||||
guard let moleculeJSON = loadObject?.pageJSON?.optionalDictionaryForKey("header"),
|
||||
let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(forJSON: moleculeJSON, delegateObject: delegateObject() as? MVMCoreUIDelegateObject, constrainIfNeeded: true) else {
|
||||
@ -128,12 +143,20 @@ open class MoleculeListTemplate: ThreeLayerTableViewController {
|
||||
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 delegate = delegateObject() as? MVMCoreUIDelegateObject
|
||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: page?.optionalDictionaryForKey("header"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: page?.optionalDictionaryForKey("footer"), delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||
if let molecules = page?.optionalArrayForKey(KeyMolecules) as? [[AnyHashable: Any]] {
|
||||
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)
|
||||
if let molecules = loadObject?.pageJSON?.optionalArrayForKey(KeyMolecules) as? [[AnyHashable: Any]] {
|
||||
for molecule in molecules {
|
||||
MVMCoreUIMoleculeMappingObject.addRequiredModules(forJSON: molecule, delegateObject: delegate, moduleList: modules, errorList: nil)
|
||||
}
|
||||
|
||||
@ -9,6 +9,21 @@
|
||||
import UIKit
|
||||
|
||||
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? {
|
||||
return 0
|
||||
@ -50,17 +65,20 @@ public class MoleculeStackTemplate: ThreeLayerViewController {
|
||||
return loadObject?.requestParameters?.modules
|
||||
}
|
||||
|
||||
open override func requiredModules(fromPageJSON page: [AnyHashable : Any]?) -> [Any]? {
|
||||
return modulesNeeded() as? [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 the modules needed.
|
||||
func modulesNeeded() -> NSMutableArray? {
|
||||
/// Gets modules required by the loadObject.pageJSON.
|
||||
open func requiredModules() -> [Any]? {
|
||||
let modules: NSMutableArray = []
|
||||
let delegate = delegateObject() as? MVMCoreUIDelegateObject
|
||||
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("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