diff --git a/MVMCoreUI/Atomic/Templates/MoleculeStackTemplate.swift b/MVMCoreUI/Atomic/Templates/MoleculeStackTemplate.swift index 41619142..2bb5ec31 100644 --- a/MVMCoreUI/Atomic/Templates/MoleculeStackTemplate.swift +++ b/MVMCoreUI/Atomic/Templates/MoleculeStackTemplate.swift @@ -50,15 +50,15 @@ open class MoleculeStackTemplate: ThreeLayerViewController, TemplateProtocol { } open override func viewForMiddle() -> UIView? { + guard let moleculeStackModel = templateModel?.moleculeStack else { return nil } - guard let moleculeStackModel = templateModel?.moleculeStack else { - return nil - } - + // By default: Stack template stack has vertical space before the first item, dynamic stack items have default horizontal padding. let stack = MoleculeStackView(frame: .zero) moleculeStackModel.useStackSpacingBeforeFirstItem = true - if moleculeStackModel.useHorizontalMargins == nil { - moleculeStackModel.useHorizontalMargins = true + for stackItem in moleculeStackModel.molecules { + guard let stackItem = stackItem as? MoleculeStackItemModel, + stackItem.horizontalAlignment == nil else { continue } + stackItem.useHorizontalMargins = true } stack.set(with: moleculeStackModel, delegateObject() as? MVMCoreUIDelegateObject, nil) return stack diff --git a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m index 1e04d987..fe8036d2 100644 --- a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m +++ b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m @@ -240,7 +240,7 @@ CGFloat const PanelAnimationDuration = 0.2; if (extraButtons) { [leftBarButtonItems addObjectsFromArray:extraButtons]; } - if ((accessible && !extended) && self.leftPanelButton) { + if ((accessible && !extended) && self.leftPanelButton && ![extraButtons containsObject:self.leftPanelButton]) { [leftBarButtonItems addObject:self.leftPanelButton]; } [viewController.navigationItem setLeftBarButtonItems:(leftBarButtonItems.count > 0 ? leftBarButtonItems : nil) animated:!DisableAnimations]; @@ -407,10 +407,10 @@ CGFloat const PanelAnimationDuration = 0.2; - (void)setRightNavigationItemForViewController:(UIViewController * _Nonnull)viewController accessible:(BOOL)accessible extended:(BOOL)extended { NSMutableArray *navigationItems = [[NSMutableArray alloc] init]; - if ((accessible && !extended) && self.rightPanelButton) { + NSArray *extraButtons = [self additionalRightButtonsForViewController:viewController]; + if ((accessible && !extended) && self.rightPanelButton && ![extraButtons containsObject:self.rightPanelButton]) { [navigationItems addObject:self.rightPanelButton]; } - NSArray *extraButtons = [self additionalRightButtonsForViewController:viewController]; if (extraButtons) { [navigationItems addObjectsFromArray:extraButtons]; }