iOS view controller which manages left and right side views
LGSideMenuControllerFramework
-> LGSideMenuController
. You need to re-add framework file.nullable
and nonnull
objects.LGSideMenuControllerWillShowLeftViewNotification
LGSideMenuControllerWillDismissLeftViewNotification
LGSideMenuControllerDidShowLeftViewNotification
LGSideMenuControllerDidDismissLeftViewNotification
LGSideMenuControllerWillShowRightViewNotification
LGSideMenuControllerWillDismissRightViewNotification
LGSideMenuControllerDidShowRightViewNotification
LGSideMenuControllerDidDismissRightViewNotification
// LGSideMenuController.h
// OLD
- (void)showHideLeftViewAnimated:(BOOL)animated completionHandler:(LGSideMenuControllerCompletionHandler)completionHandler DEPRECATED_ATTRIBUTE;
- (void)showHideRightViewAnimated:(BOOL)animated completionHandler:(LGSideMenuControllerCompletionHandler)completionHandler DEPRECATED_ATTRIBUTE;
// NEW
- (void)toggleLeftViewAnimated:(BOOL)animated completionHandler:(LGSideMenuControllerCompletionHandler)completionHandler;
- (void)toggleRightViewAnimated:(BOOL)animated completionHandler:(LGSideMenuControllerCompletionHandler)completionHandler;
// UIViewController+LGSideMenuController.h
// OLD
- (IBAction)openLeftView:(nullable id)sender DEPRECATED_ATTRIBUTE;
- (IBAction)openRightView:(nullable id)sender DEPRECATED_ATTRIBUTE;
// NEW
- (IBAction)showLeftViewAnimated:(nullable id)sender;
- (IBAction)showRightViewAnimated:(nullable id)sender;
// LGSideMenuController.h
- (IBAction)showLeftView:(nullable id)sender;
- (IBAction)hideLeftView:(nullable id)sender;
- (IBAction)toggleLeftView:(nullable id)sender;
- (IBAction)showLeftViewAnimated:(nullable id)sender;
- (IBAction)hideLeftViewAnimated:(nullable id)sender;
- (IBAction)toggleLeftViewAnimated:(nullable id)sender;
- (IBAction)showRightView:(nullable id)sender;
- (IBAction)hideRightView:(nullable id)sender;
- (IBAction)toggleRightView:(nullable id)sender;
- (IBAction)showRightViewAnimated:(nullable id)sender;
- (IBAction)hideRightViewAnimated:(nullable id)sender;
- (IBAction)toggleRightViewAnimated:(nullable id)sender;
// UIViewController+LGSideMenuController.h
- (IBAction)showLeftView:(nullable id)sender;
- (IBAction)hideLeftView:(nullable id)sender;
- (IBAction)toggleLeftView:(nullable id)sender;
- (IBAction)showLeftViewAnimated:(nullable id)sender;
- (IBAction)hideLeftViewAnimated:(nullable id)sender;
- (IBAction)toggleLeftViewAnimated:(nullable id)sender;
- (IBAction)showRightView:(nullable id)sender;
- (IBAction)hideRightView:(nullable id)sender;
- (IBAction)toggleRightView:(nullable id)sender;
- (IBAction)showRightViewAnimated:(nullable id)sender;
- (IBAction)hideRightViewAnimated:(nullable id)sender;
- (IBAction)toggleRightViewAnimated:(nullable id)sender;
- (nullable LGSideMenuController *)sideMenuController {
if ([self isKindOfClass:[LGSideMenuController class]]) {
return (LGSideMenuController *)self;
}
if (self.parentViewController.sideMenuController) {
return self.parentViewController.sideMenuController;
}
if (self.navigationController.sideMenuController) {
return self.navigationController.sideMenuController;
}
if (self.presentingViewController.sideMenuController) {
return self.presentingViewController.sideMenuController;
}
if (self.splitViewController.sideMenuController) {
return self.splitViewController.sideMenuController;
}
return nil;
}
Fixed bug with status bar
For clearly, add properties to enable/disable left/right views:
self.shouldShowLeftView = YES;
self.shouldShowRightView = YES;
or
- (BOOL)shouldShowLeftView {
return YES;
}
- (BOOL)shouldShowRightView {
return YES;
}
Fixed bugs
Carthage is a lightweight dependency manager for Swift and Objective-C. It leverages CocoaTouch modules and is less invasive than CocoaPods. To install with carthage, follow the instruction on Carthage.
github "Friend-LGA/LGSideMenuController"
And updated demo projects
Updated from typedef enum
to typedef NS_ENUM
.
Fix bug with status bar. Update demo projects.
Now you can:
sideMenuController.swipeGestureArea = LGSideMenuSwipeGestureAreaBorders;
sideMenuController.swipeGestureArea = LGSideMenuSwipeGestureAreaFull;
sideMenuController.leftViewStatusBarStyle = UIStatusBarStyle...;
sideMenuController.rightViewStatusBarStyle = UIStatusBarStyle...;
sideMenuController.leftViewStatusBarUpdateAnimation = UIStatusBarAnimation...;
sideMenuController.rightViewStatusBarUpdateAnimation = UIStatusBarAnimation...;
sideMenuController.leftViewAnimationSpeed = 0.5;
sideMenuController.rightViewAnimationSpeed = 0.5;
Fixed bug with 'Slide Over' on iOS 9 and with 'In-Call Status Bar', now you can use YES or NO values for 'View controller-based status bar appearance', add ability to set gesture recognizer cancelsTouchesInView property.