Skip to content

Instantly share code, notes, and snippets.

@jamonholmgren
Last active August 29, 2015 13:58
Show Gist options
  • Save jamonholmgren/10228692 to your computer and use it in GitHub Desktop.
Save jamonholmgren/10228692 to your computer and use it in GitHub Desktop.
class AppDelegate < PM::Delegate
def on_load(app, options)
open_slide_menu MainScreen.new(nav_bar: true), left: LeftScreen.new(nav_bar: true), right: RightScreen.new(nav_bar: true)
end
# Docs here: http://cocoadocs.org/docsets/MMDrawerController/0.5.3/Classes/MMDrawerController.html
def open_slide_menu(middle_screen, sides={})
middle = middle_screen && middle_screen.navigationController || middle_screen
right = sides[:right] && sides[:right].navigationController || sides[:right]
left = sides[:left] && sides[:left].navigationController || sides[:left]
open @mm_drawer_controller = MMDrawerController.alloc.initWithCenterViewController(middle, leftDrawerViewController: left, rightDrawerViewController: right)
end
# access with app_delegate.open_drawer(:left, animated: true) do |finished| ... end
def open_drawer(side, args={}, &callback)
args[:animated] ||= false
# I think `side` has to be turned into MMDrawerSideLeft, MMDrawerSideRight
side = MMDrawerSideLeft if side == :left
side = MMDrawerSideRight if side == :right
@mm_drawer_controller.openDrawerSide(side, animated: args[:animated], completion: callback)
end
def close_drawer(args={}, &callback)
args[:animated] ||= false
@mm_drawer_controller.closeDrawerAnimated(args[:animated], completion: callback)
end
end
# Rakefile
# ...
Motion::Project::App.setup do |app|
# Use `rake config' to see complete project settings.
app.name = 'pm_slide_menu'
app.device_family = :ipad
app.pods do
pod "MMDrawerController"
end
end
# Gemfile
gem "motion-cocoapods"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment