Module: ProMotion::NavBarModule

Included in:
ScreenModule
Defined in:
lib/ProMotion/screen/nav_bar_module.rb

Instance Method Summary collapse

Instance Method Details

#add_nav_bar(args = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 48

def add_nav_bar(args = {})
  self.navigationController ||= begin
    self.first_screen = true if self.respond_to?(:first_screen=)
    nav = (args[:nav_controller] || NavigationController).alloc.initWithRootViewController(self)
    nav.setModalTransitionStyle(args[:transition_style]) if args[:transition_style]
    nav.setModalPresentationStyle(args[:presentation_style]) if args[:presentation_style]
    nav
  end
  self.navigationController.toolbarHidden = !args[:toolbar] unless args[:toolbar].nil?
  self.navigationController.setNavigationBarHidden(args[:hide_nav_bar], animated: false) unless args[:hide_nav_bar].nil?
end

Returns:

  • (Boolean)


4
5
6
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 4

def nav_bar?
  !!self.navigationController
end


8
9
10
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 8

def navigation_controller
  self.navigationController
end


12
13
14
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 12

def navigation_controller=(nav)
  self.navigationController = nav
end


16
17
18
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 16

def navigationController=(nav)
  @navigationController = nav
end

#set_nav_bar_button(side, args = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 20

def set_nav_bar_button(side, args={})
  button = create_toolbar_button(args)
  button.setTintColor args[:tint_color] if args[:tint_color]

  self.navigationItem.leftBarButtonItem = button if side == :left
  self.navigationItem.rightBarButtonItem = button if side == :right
  self.navigationItem.backBarButtonItem = button if side == :back

  button
end

#set_nav_bar_left_button(title, args = {}) ⇒ Object Also known as: set_nav_bar_right_button

TODO: In PM 2.1+, entirely remove this deprecated method.



32
33
34
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 32

def set_nav_bar_left_button(title, args={})
  PM.logger.deprecated "set_nav_bar_right_button and set_nav_bar_left_button have been removed. Use set_nav_bar_button :right/:left instead."
end

#set_toolbar_items(buttons = [], animated = true) ⇒ Object Also known as: set_toolbar_buttons, set_toolbar_button



37
38
39
40
41
42
43
44
# File 'lib/ProMotion/screen/nav_bar_module.rb', line 37

def set_toolbar_items(buttons = [], animated = true)
  if buttons
    self.toolbarItems = Array(buttons).map{|b| b.is_a?(UIBarButtonItem) ? b : create_toolbar_button(b) }
    navigationController.setToolbarHidden(false, animated:animated)
  else
    navigationController.setToolbarHidden(true, animated:animated)
  end
end