A customizable Swift container view controller for iOS that displays a main content panel and a side menu panel.
SideMenuController is a custom container view controller written in Swift for iOS that manages a main content area and a side panel for navigation or menus. It solves the need for a reusable, customizable side menu implementation without requiring developers to build it from scratch. The library handles layout, animations, and user interactions for revealing and hiding the side panel.
iOS developers building applications that require a side navigation drawer or menu, particularly those using Swift and looking for a drop-in solution with extensive customization options.
Developers choose SideMenuController for its out-of-the-box functionality, support for multiple positioning and animation options, and seamless integration with both storyboards and programmatic UI. Its caching feature and detailed customization preferences set it apart from basic implementations.
A side menu controller written in Swift for iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports left or right side placement and over/under center panel positioning, enabling diverse UI layouts as shown in the GIF examples.
Allows fully custom animation transitions via the TransitionAnimatable protocol, with examples like fade, slide, and underlay effects provided.
Enables caching of center view controllers to improve performance and state management, reducing instantiation overhead in menu navigation.
Can be set up via storyboard segues or entirely programmatically, offering flexibility for different development workflows.
If no menuButtonImage is specified, developers must manually add side menu buttons to all navigation controllers, increasing boilerplate code and potential errors.
Only compatible with iOS 8.0 and above, excluding cross-platform projects or apps targeting older iOS versions.
Automatic menu button addition only works with UINavigationController or its children; other center controller types require manual handling, as noted in the usage section.