Как пользоваться ProMotion-Menu?
Я сделал новый проект только с кодом, указанным в Readme-меню промо-меню. У меня есть это:
# app_delegate.rb
class AppDelegate < PM::Delegate
def on_load(app, options)
@menu = open MenuDrawer
end
def show_menu
@menu.show :left
end
end
#menu_drawer.rb
class MenuDrawer < PM::Menu::Drawer
def setup
self.center = HomeScreen.new(nav_bar: true)
self.left = NavigationScreen
self.to_show = [:pan_bezel, :pan_nav_bar]
self.transition_animation = :swinging_door
self.max_left_width = 250
self.shadow = false
end
end
#navigation_screen.rb
class NavigationScreen < ProMotion::TableScreen
def table_data
[{
title: nil,
cells: [{
title: 'OVERWRITE THIS METHOD',
action: :swap_center_controller,
arguments: HomeScreen
}]
}]
end
def swap_center_controller(screen_class)
app_delegate.menu.center_controller = screen_class
end
end
Мое приложение запущено, но боковой панели нет, как вы можете видеть здесь:
Я что-то пропустил?
1 ответ
Решение
Нет. То, что у вас там, должно работать. Вам придется перемещать панель или панель навигации, чтобы открыть левый контроллер (который скрыт при первом открытии приложения). Я думал о добавлении кнопки меню к примерам, чтобы сделать это немного понятнее. Вот как это может работать:
# home_screen.rb
class HomeScreen < PM::Screen
title "Home"
def on_load
set_nav_bar_button :right, title: "Menu", action: :open_menu
end
def open_menu
app_delegate.show_menu
end
end
# navigation_screen.rb
class NavigationScreen < ProMotion::TableScreen
def table_data
[{
title: nil,
cells: [{
title: 'HomeScreen',
action: :swap_center_controller,
arguments: HomeScreen.new(nav_bar: true)
},{
title: 'HelpScreen',
action: :swap_center_controller,
arguments: HelpScreen.new(nav_bar: true)
}]
}]
end
def swap_center_controller(screen)
app_delegate.menu.center_controller = screen
app_delegate.menu.hide
end
end
Ваш AppDelegate
а также MenuDrawer
останется без изменений.