A custom menu implementation with a slide in menu similar to Medium's menu.
Inspired by RBMenu and Medium.
To see how it works, have a look at the Examples folder.
This has not been designed to be dropped into a project as it is, a bit of re-working must be done. I will set it up as an independent component soon.
Drag EBMenucontroller & EBMenuItem
from the Drop Menu folder into your project.
Create your menu items.
EBMenuItem *politics = [EBMenuItem initWithTitle:@"Politics" withColourScheme:[UIColor flatEmeraldColor]];
EBMenuItem *culture = [EBMenuItem initWithTitle:@"Culture" withColourScheme:[UIColor flatAlizarinColor]];
EBMenuItem *travel = [EBMenuItem initWithTitle:@"Travel" withColourScheme:[UIColor flatOrangeColor]];
EBMenuItem *nature = [EBMenuItem initWithTitle:@"Nature" withColourScheme:[UIColor flatWisteriaColor]];
For each menu item, there is a corresponding completionBlock that gets called when the menu is tapped. Also, we are using completion block to lazy load view controllers.
PoliticsViewController *politicsInitialView = [storyBoard instantiateViewControllerWithIdentifier:@"Politics"];
politicsInitialView.menuItem = politics;
self.viewControllers = @[politicsInitialView];
politics.completionBlock = ^{
self.viewControllers = @[politicsInitialView];
};
Note, that the implementation in the example happens inside a custom UINavigationController
, this doesn't have to be case with everyone. You can easily setup the menu items in the delegate and instead of adding the viewcontrollers to self.viewcontrollers you'll do it in `self.navigationcontroller.viewcontrollers'
-
Does it support storyboards?
YES -
Can I have more than 4 menu items
YES, but this isn't tested, you might need to modify
menuHeight
constant inEBMenuController.m
to make it all fit. -
Does it support iPad?
Yes, maybe, its not been tested, but there is no reason it shouldn't work
If you get to use it, please let me know on Twitter
This component has been lovingly crafted by Edwin B