diff --git a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.h b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.h index 8c1a7715..1a72a190 100644 --- a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.h +++ b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.h @@ -24,8 +24,12 @@ typedef NS_ENUM(NSInteger, MFNumberOfDrawers) { @interface MVMCoreUISplitViewController : UIViewController // Reference to the panels. -@property (nullable, weak, nonatomic, readonly) UIViewController *leftPanel; -@property (nullable, weak, nonatomic, readonly) UIViewController *rightPanel; +@property (nullable, weak, nonatomic) UIViewController *leftPanel; +@property (nullable, weak, nonatomic) UIViewController *rightPanel; + +// For keeping +@property (nullable, strong, nonatomic) UIViewController *globalLeftPanel; +@property (nullable, strong, nonatomic) UIViewController *globalRightPanel; // Can be of protocol MVMCoreUIPanelButtonProtocol @property (nullable, strong, nonatomic) UIBarButtonItem *leftPanelButton; @@ -79,6 +83,9 @@ typedef NS_ENUM(NSInteger, MFNumberOfDrawers) { // contains speicaly logic to set the icon color - (void)setNavigationIconColor:(nullable UIColor *)color; +///create right and left panel. if left and right panel is already created, will replace them +- (void)createPanels; + /// Updates the panels that are used. - (void)setupPanels; @@ -120,10 +127,6 @@ typedef NS_ENUM(NSInteger, MFNumberOfDrawers) { - (nullable UIViewController *)createLeftPanelViewController; - (nullable UIViewController *)createRightPanelViewController; -//replace gloabl panel -- (void)updateGlobalLeftPanelViewController:(nullable UIViewController *)leftPanelController; -- (void)updateGlobalRightPanelViewController:(nullable UIViewController *)rightPanelController; - // subclass to change image of back button - (nullable UIImage *)imageForBackButton; diff --git a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m index 15dfba04..cd36d2a7 100644 --- a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m +++ b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m @@ -44,12 +44,6 @@ typedef NS_OPTIONS(NSInteger, MFExtendedDrawer) { @property (weak, nonatomic) UIView *leftPanelSeparator; @property (weak, nonatomic) UIView *rightPanelSeparator; -// For keeping -@property (strong, nonatomic, readwrite) UIViewController *globalLeftPanel; -@property (strong, nonatomic, readwrite) UIViewController *globalRightPanel; - -@property (weak, nonatomic, readwrite) UIViewController *leftPanel; -@property (weak, nonatomic, readwrite) UIViewController *rightPanel; @property (weak, nonatomic, readwrite) NavigationController *navigationController; // A view that covers the detail view when the master is out. @@ -114,14 +108,6 @@ CGFloat const PanelAnimationDuration = 0.2; return nil; } -- (void)updateGlobalLeftPanelViewController:(nullable UIViewController *)leftPanelController { - self.globalLeftPanel = leftPanelController; -} - -- (void)updateGlobalRightPanelViewController:(nullable UIViewController *)rightPanelController { - self.globalRightPanel = rightPanelController; -} - - (nullable NSArray *)additionalLeftButtons { return nil; } @@ -366,7 +352,7 @@ CGFloat const PanelAnimationDuration = 0.2; } - (void)showLeftPanelAnimated:(BOOL)animated explict:(BOOL)explict { - if (!self.globalLeftPanel) { + if (!self.leftPanel) { return; } [MVMCoreDispatchUtility performBlockOnMainThread:^{ @@ -523,9 +509,6 @@ CGFloat const PanelAnimationDuration = 0.2; } - (void)hideRightPanelAnimated:(BOOL)animated checkingForOtherExtendedDrawers:(BOOL)checkingForOtherExtendedDrawers { - if (!self.globalRightPanel) { - return; - } [MVMCoreDispatchUtility performBlockOnMainThread:^{ if (self.mainViewTrailing.constant > .1) { if (checkingForOtherExtendedDrawers && self.explictlyShowingPanel == self.rightPanel) { @@ -565,7 +548,7 @@ CGFloat const PanelAnimationDuration = 0.2; } - (void)showRightPanelAnimated:(BOOL)animated explict:(BOOL)explict { - if (!self.globalRightPanel) { + if (!self.rightPanel) { return; } [MVMCoreDispatchUtility performBlockOnMainThread:^{ @@ -786,6 +769,13 @@ CGFloat const PanelAnimationDuration = 0.2; } } +- (void)createPanels { + // Create panels + self.globalLeftPanel = [self createLeftPanelViewController]; + self.globalRightPanel = [self createRightPanelViewController]; + [self setupPanels]; +} + - (void)setupPanels { [self forceHideBothDrawers]; [self setupLeftPanel]; @@ -882,10 +872,7 @@ CGFloat const PanelAnimationDuration = 0.2; [NSLayoutConstraint constraintWithItem:coverView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:mainView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0].active = YES; [NSLayoutConstraint constraintWithItem:coverView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:mainView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0].active = YES; - // Create panels - self.globalLeftPanel = [self createLeftPanelViewController]; - self.globalRightPanel = [self createRightPanelViewController]; - [self setupPanels]; + [self createPanels]; } - (void)viewDidLoad {