detail_view_protocol_right_left_button
This commit is contained in:
parent
dcc6e5f9ea
commit
f5b580ba50
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user