mirror of
https://github.com/zhigang1992/ProMotion.git
synced 2026-05-13 18:11:09 +08:00
implemented nav_bar_button class method RE #272
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
class DetailScreen < PM::Screen
|
||||
title "Detail"
|
||||
|
||||
nav_bar_button :right, title: "More", style: :plain, action: :back
|
||||
end
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user