implemented nav_bar_button class method RE #272

This commit is contained in:
Kevin VanGelder
2014-12-05 14:57:05 -08:00
parent cb87d57449
commit bf7930248c
3 changed files with 21 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
class DetailScreen < PM::Screen
title "Detail"
nav_bar_button :right, title: "More", style: :plain, action: :back
end

View File

@@ -13,6 +13,7 @@ module ProMotion
resolve_title
apply_properties(args)
add_nav_bar(args) if args[:nav_bar]
add_nav_bar_buttons
tab_bar_setup
try :screen_setup
try :on_init
@@ -46,6 +47,10 @@ module ProMotion
end
end
def add_nav_bar_buttons
set_nav_bar_button(self.class.get_nav_bar_button[:side], self.class.get_nav_bar_button) if self.class.get_nav_bar_button
end
def status_bar_hidden(hidden)
UIApplication.sharedApplication.setStatusBarHidden(hidden, withAnimation:self.class.status_bar_animation)
end
@@ -229,6 +234,15 @@ module ProMotion
def status_bar_animation
@status_bar_animation || UIStatusBarAnimationSlide
end
def nav_bar_button(side, args={})
@nav_bar_button_args = args
@nav_bar_button_args[:side] = side
end
def get_nav_bar_button
@nav_bar_button_args
end
end
def self.included(base)

View File

@@ -88,6 +88,11 @@ describe "screen helpers" do
end
end
it "allows setting a nav_bar_button with a class method" do
screen = DetailScreen.new(nav_bar: true)
screen.navigationItem.rightBarButtonItem.class.should == UIBarButtonItem
end
end
describe "screen navigation" do