Как пользоваться 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

Мое приложение запущено, но боковой панели нет, как вы можете видеть здесь:

снимок экрана симулятора ios 2015-03-12 17 36 39

Я что-то пропустил?

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 останется без изменений.

Другие вопросы по тегам