Skip to content
This repository was archived by the owner on Nov 19, 2025. It is now read-only.

Commit f872ac8

Browse files
committed
Merge pull request #766 from jcarbo/bug/nav-bar-button-class-method
Fix nav_bar_button class method
2 parents f30e7ce + 88cbb58 commit f872ac8

3 files changed

Lines changed: 15 additions & 5 deletions

File tree

app/screens/detail_screen.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class DetailScreen < PM::Screen
22
title "Detail"
33

4+
nav_bar_button :left, title: "Back", style: :plain, action: :back
45
nav_bar_button :right, title: "More", style: :plain, action: :back
56
end

lib/ProMotion/screen/screen_module.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,9 @@ def resolve_status_bar
198198
end
199199

200200
def add_nav_bar_buttons
201-
set_nav_bar_button(self.class.get_nav_bar_button[:side], self.class.get_nav_bar_button) if self.class.get_nav_bar_button
201+
self.class.get_nav_bar_button.each do |button_args|
202+
set_nav_bar_button(button_args[:side], button_args)
203+
end
202204
end
203205

204206
def status_bar_hidden(hidden)
@@ -276,12 +278,14 @@ def get_nav_bar
276278
end
277279

278280
def nav_bar_button(side, args={})
279-
@nav_bar_button_args = args
280-
@nav_bar_button_args[:side] = side
281+
button_args = args.merge(:side => side)
282+
283+
@nav_bar_button_args ||= []
284+
@nav_bar_button_args << button_args
281285
end
282286

283287
def get_nav_bar_button
284-
@nav_bar_button_args
288+
@nav_bar_button_args ||= []
285289
end
286290
end
287291

spec/unit/screen_helpers_spec.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,13 @@
8989

9090
end
9191

92-
it "allows setting a nav_bar_button with a class method" do
92+
it "allows setting nav bar buttons via nav_bar_button class method" do
9393
screen = DetailScreen.new(nav_bar: true)
94+
95+
screen.navigationItem.leftBarButtonItem.title.should == 'Back'
96+
screen.navigationItem.rightBarButtonItem.title.should == 'More'
97+
98+
screen.navigationItem.leftBarButtonItem.class.should == UIBarButtonItem
9499
screen.navigationItem.rightBarButtonItem.class.should == UIBarButtonItem
95100
end
96101
end

0 commit comments

Comments
 (0)