3

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

私は何か見落としてますか ?

4

1 に答える 1

4

いいえ、そこにあるものは機能するはずです。左のコントローラーを表示するには、ベゼルまたはナビゲーション バーをパンする必要があります (最初にアプリを開いたときには非表示になっています)。これをもう少し明確にするために、例にメニューボタンを追加することを考えていました. それがどのように機能するかは次のとおりです。

# 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

あなたのAppDelegateMenuDrawerは変更されません。

于 2015-03-18T19:08:54.057 に答える