Module: MotionPrime::ScreenNavigationMixin
- Included in:
- ScreenBaseMixin
- Defined in:
- motion-prime/screens/_navigation_mixin.rb
Instance Method Summary collapse
- #back ⇒ Object
- #close_screen(args = {}) ⇒ Object
- #has_navigation? ⇒ Boolean
- #navigation_controller ⇒ Object
- #navigation_controller=(val) ⇒ Object
- #open_screen(screen, args = {}) ⇒ MotionPrime::Screen
- #send_on_leave ⇒ Object
- #send_on_return(screen) ⇒ Object
- #wrap_in_navigation ⇒ Object
- #wrap_in_navigation? ⇒ Boolean
Instance Method Details
#back ⇒ Object
35 36 37 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 35 def back close_screen end |
#close_screen(args = {}) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 25 def close_screen(args = {}) args[:animated] = args.has_key?(:animated) ? args[:animated] : true # Pop current view, maybe with arguments, if in navigation controller if modal? close_screen_modal(args) elsif (args) end end |
#has_navigation? ⇒ Boolean
61 62 63 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 61 def !.nil? end |
#navigation_controller ⇒ Object
65 66 67 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 65 def @navigation_controller ||= self..try(:weak_ref) end |
#navigation_controller=(val) ⇒ Object
69 70 71 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 69 def (val) @navigation_controller = val.try(:weak_ref) end |
#open_screen(screen, args = {}) ⇒ MotionPrime::Screen
12 13 14 15 16 17 18 19 20 21 22 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 12 def open_screen(screen, args = {}) screen = setup_screen_for_open(screen, args) screen.send(:on_screen_load) if screen.respond_to?(:on_screen_load) args[:animated] = args.has_key?(:animated) ? args[:animated] : true if args[:modal] || ! open_screen_modal(screen, args.merge(modal: true)) else (screen, args) end screen end |
#send_on_leave ⇒ Object
45 46 47 48 49 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 45 def send_on_leave if respond_to?(:on_leave) on_leave end end |
#send_on_return(screen) ⇒ Object
39 40 41 42 43 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 39 def send_on_return(screen) if screen && screen.respond_to?(:on_return) screen.send(:on_return) end end |
#wrap_in_navigation ⇒ Object
55 56 57 58 59 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 55 def if end end |
#wrap_in_navigation? ⇒ Boolean
51 52 53 |
# File 'motion-prime/screens/_navigation_mixin.rb', line 51 def .fetch(:navigation, true) end |