The following is a guest post by Dasmer Singh and originally appeared on his blog. Dasmer is currently in the iOS-000 class at The Flatiron School. You can follow him on Twitter here.

In class, some of us have been using a very cool CocoaPod – MMDrawerController.  It’s very useful and similar UI has been used in Facebook, GroupMe, Twitter and a plethora of other apps as well.

The pod essentially creates drawers that open from the left and right of the view, and I think it’s a great place to put settings/navigation options on an already real-estate constrained screen.

I’ve posted an example on GitHub at the following link:

https://github.com/Dasmer/BlogDrawerPractice

Here I am using a category on MMDrawerController called MMDrawerController+Storyboard (MMDrawerController was made for XIBs or programmatically created View Controllers).  In the storyboard I make the root view controller a MMDrawerController and then create 2 custom segue’s. One to a navigation controller and the other to a table view controller.  I labeled the segue to the navigation controller “mm_center” and the segue to the table view controller “mm_left”.

This sounds hacky (and it is), but whenever you use MMDrawerController+Storyboard you MUST label your segues like this. The Cocoapod is amazing, but its not 100% perfect.  Another issue with the pod is that when you turn on all breakpoints, if you don’t want a particular drawer (in my case I did not make a right drawer), the debugger stops at the exception when the MMDrawerController loads.

In my example I used the tableview to swap my center view controller. To do so,  I had to be able to refer to my MMDrawerController (essentially my container ViewController kind of like a SplitViewController). To easily do that, I needed to import a UIViewController category ”UIViewController+MMDrawerController.h”. This comes in the pod and gives me access to the MMDrawerController by referring to self.mm_drawerController. Then I just reset the center view controller depending on which button was clicked.  

Check out my repo at the link above. Below I posted links to the MMDrawerController Cocoapod and the Mhttps://itunes.apple.com/us/app/quickcontact-qrcode-scanner/id735849910 Cocoapod. They also have some extremely useful examples that discuss customization even further.

MMDrawerController:

https://github.com/mutualmobile/MMDrawerController

MMDrawerController+Storyboard:

My latest app QuickContact is now available in the App Store. 

Here’s a link: https://itunes.apple.com/us/app/quickcontact-qrcode-scanner/id735849910

https://github.com/TomSwift/MMDrawerController-Storyboard

Chao!

Start Learning to Code for Free