diff --git a/MVMCoreUI/Atoms/Views/MVMCoreUICheckBox.m b/MVMCoreUI/Atoms/Views/MVMCoreUICheckBox.m index ff46aa6a..0158beb1 100644 --- a/MVMCoreUI/Atoms/Views/MVMCoreUICheckBox.m +++ b/MVMCoreUI/Atoms/Views/MVMCoreUICheckBox.m @@ -342,8 +342,10 @@ static const CGFloat CheckBoxHeightWidth = 18.0; [self.checkMark updateCheckSelected:NO animated:animated]; } - FormValidator *formValidator = ((MVMCoreUIDelegateObject *)self.delegate).formValidationProtocol.formValidatorModel; - [formValidator enableByValidation]; + if (self.delegate && [self.delegate respondsToSelector:@selector(formValidationProtocol)] && [[self.delegate performSelector:@selector(formValidationProtocol)] respondsToSelector:@selector(formValidatorModel)]) { + FormValidator *formValidator = [[self.delegate performSelector:@selector(formValidationProtocol)] performSelector:@selector(formValidatorModel)]; + [formValidator enableByValidation]; + } } - (void)setColor:(nullable UIColor *)color forState:(UIControlState)state { diff --git a/MVMCoreUI/BaseControllers/MFViewController.m b/MVMCoreUI/BaseControllers/MFViewController.m index 1bd5e866..b6f71412 100644 --- a/MVMCoreUI/BaseControllers/MFViewController.m +++ b/MVMCoreUI/BaseControllers/MFViewController.m @@ -343,15 +343,24 @@ - (BOOL)isOverridingRightButton { NSDictionary *rightPanelLinkDict = [self.loadObject.pageJSON dict:@"rightPanelButtonLink"]; if (rightPanelLinkDict) { - [[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:rightPanelLinkDict - additionalData:nil - delegateObject:[self delegateObject]]; + [[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:rightPanelLinkDict additionalData:nil delegateObject:[self delegateObject]]; return YES; } else { return NO; } } +- (BOOL)isOverridingLeftButton { + NSDictionary *leftPanelLinkDict = [self.loadObject.pageJSON dict:@"leftPanelButtonLink"]; + if (leftPanelLinkDict) { + [[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:leftPanelLinkDict additionalData:nil delegateObject:[self delegateObject]]; + return YES; + } else { + return NO; + } +} + + - (void)setSupportShouldBeAccessible:(BOOL)supportShouldBeAccessible { MVMCoreUISplitViewController *splitViewController = [MVMCoreUISession sharedGlobal].splitViewController; diff --git a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m index d06ca5f4..1d8481d6 100644 --- a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m +++ b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m @@ -139,6 +139,22 @@ } } +- (BOOL)isOverridingLeftButton { + if ([self.viewController respondsToSelector:@selector(isOverridingLeftButton)]) { + return [self.viewController performSelector:@selector(isOverridingLeftButton)]; + } else { + return [super isOverridingLeftButton]; + } +} + +- (BOOL)isOverridingRightButton { + if ([self.viewController respondsToSelector:@selector(isOverridingRightButton)]) { + return [self.viewController performSelector:@selector(isOverridingRightButton)]; + } else { + return [super isOverridingRightButton]; + } +} + #pragma mark - View Cycle - (void)loadView {