detail_view_protocol_right_left_button

This commit is contained in:
Suresh, Kamlesh 2019-02-14 00:09:45 -05:00
parent dcc6e5f9ea
commit f5b580ba50
3 changed files with 44 additions and 1 deletions

View File

@ -324,6 +324,17 @@
return [self.loadObject.pageJSON lenientBoolForKey:@"showRightPanel"];
}
- (BOOL)isOverridingRightButton {
return [self.loadObject.pageJSON dict:@"supportLink"];
}
- (void)rightPanelButtonPressed {
[[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:[self.loadObject.pageJSON dict:@"supportLink"]
additionalData:nil
delegate:self];
}
- (void)setSupportShouldBeAccessible:(BOOL)supportShouldBeAccessible {
MVMCoreUISplitViewController *splitViewController = [MVMCoreUISession sharedGlobal].splitViewController;

View File

@ -24,6 +24,11 @@ NS_ASSUME_NONNULL_BEGIN
// Called when the back button is pressed. Overwrite for special functionality.
- (void)backButtonPressed;
- (void)leftPanelButtonPressed;
- (void)rightPanelButtonPressed;
- (BOOL)isOverridingRightButton;
- (BOOL)isOverridingLeftButton;
@end
NS_ASSUME_NONNULL_END

View File

@ -142,6 +142,19 @@ CGFloat const PanelAnimationDuration = 0.2;
- (IBAction)leftPanelButtonPressed:(id)sender {
[MVMCoreDispatchUtility performBlockOnMainThread:^{
UIViewController *viewController = self.navigationController.topViewController;
// If Viewcontroller confirms to protocol and implements the the method leftPanelButtonPressed
if ([viewController conformsToProtocol:@protocol(MVMCoreUIDetailViewProtocol)]
&& [viewController respondsToSelector:@selector(leftPanelButtonPressed)]
&& [viewController respondsToSelector:@selector(isOverridingLeftButton)]) {
if ([((UIViewController <MVMCoreUIDetailViewProtocol> *)viewController) isOverridingLeftButton]) {
[((UIViewController <MVMCoreUIDetailViewProtocol> *)viewController) leftPanelButtonPressed];
return;
}
}
if (self.mainViewLeading.constant < .1) {
// Hide the keyboard
@ -153,6 +166,7 @@ CGFloat const PanelAnimationDuration = 0.2;
// Hide
[self hideLeftPanelIfNeededAnimated:YES];
}
}];
}
@ -169,9 +183,22 @@ CGFloat const PanelAnimationDuration = 0.2;
- (IBAction)rightPanelButtonPressed:(id)sender {
[MVMCoreDispatchUtility performBlockOnMainThread:^{
UIViewController *viewController = self.navigationController.topViewController;
// If Viewcontroller confirms to protocol and implements the the method rightPanelButtonPressed
if ([viewController conformsToProtocol:@protocol(MVMCoreUIDetailViewProtocol)]
&& [viewController respondsToSelector:@selector(isOverridingRightButton)]
&& [viewController respondsToSelector:@selector(rightPanelButtonPressed)]) {
if ([((UIViewController <MVMCoreUIDetailViewProtocol> *)viewController) isOverridingRightButton]) {
[((UIViewController <MVMCoreUIDetailViewProtocol> *)viewController) rightPanelButtonPressed];
return;
}
}
if (self.mainViewTrailing.constant < .1) {
// Hide the keyboard
[self.navigationController.topViewController.view endEditing:YES];
[viewController.view endEditing:YES];
// Show
[self showRightPanelAnimated:YES];