Class: Bluesky::NavigationController
Overview
Bluesky::NavigationController
Instance Attribute Summary
#appearance, #children, #data, #parent
Instance Method Summary
collapse
#add_child_view_controller, attribute, #begin_appearance_transition, #did_move_to_parent_view_controller, #dismiss, #dispatch, #end_appearance_transition, #force_update, #force_update?, inherited, #navigation_controller, #notify, #present, #refresh, #remove_from_parent_view_controller, #render, #show, #will_move_to_parent_view_controller
Methods included from DSL
tag
Constructor Details
Returns a new instance of NavigationController.
8
9
10
11
12
|
# 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
|
Instance Method Details
#pop_to_root_view_controller ⇒ Object
102
103
104
|
# 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) ⇒ Object
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# 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 ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
|
# 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) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
|
# 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 ⇒ Object
38
39
40
|
# File 'lib/bluesky/navigation_controller.rb', line 38
def root_view_controller
@children.first
end
|
#top_view_controller ⇒ Object
42
43
44
|
# File 'lib/bluesky/navigation_controller.rb', line 42
def top_view_controller
@children.last
end
|
#view ⇒ Object
14
15
16
|
# File 'lib/bluesky/navigation_controller.rb', line 14
def view
top_view_controller.view
end
|
#view_controllers ⇒ Object
50
51
52
|
# File 'lib/bluesky/navigation_controller.rb', line 50
def view_controllers
@children
end
|
#view_controllers=(controllers) ⇒ Object
54
55
56
57
58
|
# 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 ⇒ Object
23
24
25
26
|
# File 'lib/bluesky/navigation_controller.rb', line 23
def view_did_appear
super
top_view_controller.end_appearance_transition
end
|
#view_did_disappear ⇒ Object
33
34
35
36
|
# File 'lib/bluesky/navigation_controller.rb', line 33
def view_did_disappear
super
top_view_controller.end_appearance_transition
end
|
#view_will_appear ⇒ Object
18
19
20
21
|
# File 'lib/bluesky/navigation_controller.rb', line 18
def view_will_appear
super
top_view_controller.begin_appearance_transition(true)
end
|
#view_will_disappear ⇒ Object
28
29
30
31
|
# File 'lib/bluesky/navigation_controller.rb', line 28
def view_will_disappear
super
top_view_controller.begin_appearance_transition(false)
end
|
#visible_view_controller ⇒ Object
46
47
48
|
# File 'lib/bluesky/navigation_controller.rb', line 46
def visible_view_controller
top_view_controller
end
|