I'd like to implement my sliding menu in a way that pressing the Menu button will show my menu and pressing Menu again would hide it. But I can't understand how to do it with ECSlidingViewController. Will appreciate any help.
Closing ECSlidingViewController menu
2.6k Views Asked by devmiles.com At
3
There are 3 best solutions below
0

I have came up with this question and above answer helps me to resolve it. But I just need to add more detailed answer with code example, so others might get benefit from this if they faced such a problem.
- (IBAction)showSlidingMenu:(id)sender {
[self.slidingViewController anchorTopViewToRightAnimated:YES];
if ([self.slidingViewController currentTopViewPosition] == ECSlidingViewControllerTopViewPositionAnchoredRight) {
[self.slidingViewController resetTopViewAnimated:YES];
}
}
- Please note I am animating the top view controller to Right, so I am checking whether top view position is ECSlidingViewControllerTopViewPositionAnchoredRight.
- Similarly top view position has ECSlidingViewControllerTopViewPositionAnchoredLeft if you are animating to the left.
- If menu is not showing top view position will get ECSlidingViewControllerTopViewPositionCentered.
+1 for the question and accepted answer
Thanks.
0

According to "ECSlidingViewController sample project" you need to put these 4 lines in ViewWillAppear of FirstTopController(e.g TransitionViewController):
self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning;
self.slidingViewController.customAnchoredGestures = @[];
[self.navigationController.view removeGestureRecognizer:self.dynamicTransitionPanGesture];
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];
These 4 lines are being used in delegate method of tableview. It might be possible you're not using tableview so these 4 lines are not calling.
Best of Luck..
ECSlidingViewController has methods for this:
anchorTopViewToRightAnimated:
,anchorTopViewToLeftAnimated:
andresetTopViewAnimated:
.Example in your top view controller:
ECSlidingViewController provides a category for UIViewController adding this
slidingViewController
property.You may also want to use ECSlidingViewController's
currentTopViewPosition
to determine if your button should show your menu or hide it in the current context.