class Bluesky::NavigationController

Bluesky::NavigationController

Public Class Methods

new(root_view_controller) click to toggle source
Calls superclass method
# File lib/bluesky/navigation_controller.rb, line 8
def initialize(root_view_controller)
  raise 'NavigationController requires a root_view_controller' unless root_view_controller
  super
  add_child_view_controller(root_view_controller)
end
new(*args) click to toggle source
Calls superclass method
# File test/test_helper.rb, line 67
def self.new *args
  instance = super
  instance.parent = MockApplication.new
  instance
end

Public Instance Methods

pop_to_root_view_controller() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 102
def pop_to_root_view_controller
  pop_to_view_controller(root_view_controller)
end
pop_to_view_controller(view_controller) click to toggle source
# File lib/bluesky/navigation_controller.rb, line 85
def pop_to_view_controller(view_controller)
  index = @children.index(view_controller)
  count = index.nil? ? 0 : index + 1
  removed = @children[count..-1]
  @children = @children[0...count]
  removed.each { |child| child.begin_appearance_transition(false) }
  top_view_controller.begin_appearance_transition(@appearance == :appeared)
  force_update do
    top_view_controller.end_appearance_transition()
    removed.each do |child|
      child.parent = nil
      child.end_appearance_transition()
    end
  end
  return removed
end
pop_view_controller() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 72
def pop_view_controller
  pre { top_view_controller != root_view_controller }
  popped_view_controller = top_view_controller
  popped_view_controller.begin_appearance_transition(false)
  popped_view_controller.remove_from_parent_view_controller()
  top_view_controller.begin_appearance_transition(@appearance == :appeared)
  force_update do
    top_view_controller.end_appearance_transition()
    popped_view_controller.end_appearance_transition()
  end
  return popped_view_controller
end
push_view_controller(view_controller) click to toggle source
# File lib/bluesky/navigation_controller.rb, line 60
def push_view_controller(view_controller)
  old_view_controller = top_view_controller
  old_view_controller.begin_appearance_transition(false)
  view_controller.begin_appearance_transition(@appearance == :appeared)
  add_child_view_controller(view_controller)
  force_update do
    view_controller.end_appearance_transition
    old_view_controller.end_appearance_transition
  end
  return
end
root_view_controller() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 38
def root_view_controller
  @children.first
end
top_view_controller() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 42
def top_view_controller
  @children.last
end
view() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 14
def view
  top_view_controller.view
end
view_controllers() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 50
def view_controllers
  @children
end
view_controllers=(controllers) click to toggle source
# File lib/bluesky/navigation_controller.rb, line 54
def view_controllers=(controllers)
  index = @children.index(controllers.last)
  pop_to_root_view_controller(controllers.last) unless index.nil?
  @children.replace(controllers)
end
view_did_appear() click to toggle source
Calls superclass method
# File lib/bluesky/navigation_controller.rb, line 23
def view_did_appear
  super
  top_view_controller.end_appearance_transition
end
view_did_disappear() click to toggle source
Calls superclass method
# File lib/bluesky/navigation_controller.rb, line 33
def view_did_disappear
  super
  top_view_controller.end_appearance_transition
end
view_will_appear() click to toggle source
Calls superclass method
# File lib/bluesky/navigation_controller.rb, line 18
def view_will_appear
  super
  top_view_controller.begin_appearance_transition(true)
end
view_will_disappear() click to toggle source
Calls superclass method
# File lib/bluesky/navigation_controller.rb, line 28
def view_will_disappear
  super
  top_view_controller.begin_appearance_transition(false)
end
visible_view_controller() click to toggle source
# File lib/bluesky/navigation_controller.rb, line 46
def visible_view_controller
  top_view_controller
end