Module: ProMotion::SplitScreen

Included in:
DelegateModule, ScreenModule
Defined in:
lib/ProMotion/containers/split_screen.rb

Instance Method Summary collapse

Instance Method Details

#create_split_screen(master, detail, args = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ProMotion/containers/split_screen.rb', line 16

def create_split_screen(master, detail, args={})
  master = master.new if master.respond_to?(:new)
  detail = detail.new if detail.respond_to?(:new)

  split = split_screen_controller master, detail
  if args.has_key?(:icon) or args.has_key?(:title)
    split.tabBarItem = create_tab_bar_item(args)
  end

  if args.has_key?(:button_title)
    @button_title = args[:button_title]
  end

  split
end

#open_split_screen(master, detail, args = {}) ⇒ Object



32
33
34
35
36
# File 'lib/ProMotion/containers/split_screen.rb', line 32

def open_split_screen(master, detail, args={})
  split = create_split_screen(master, detail, args)
  open split, args
  split
end

#split_screen_controller(master, detail) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/ProMotion/containers/split_screen.rb', line 3

def split_screen_controller(master, detail)
  master_main = master.navigationController ? master.navigationController : master
  detail_main = detail.navigationController ? detail.navigationController : detail

  split = SplitViewController.alloc.init
  split.viewControllers = [ master_main, detail_main ]
  split.delegate = self

  [ master, detail ].map { |s| s.split_screen = split if s.respond_to?(:split_screen=) }

  split
end

#splitViewController(svc, willShowViewController: vc, invalidatingBarButtonItem: barButtonItem) ⇒ Object

UISplitViewControllerDelegate methods



40
41
42
43
# File 'lib/ProMotion/containers/split_screen.rb', line 40

def splitViewController(svc, willHideViewController: vc, withBarButtonItem: button, forPopoverController: pc)
  button.title = @button_title || vc.title
  svc.detail_screen.navigationItem.leftBarButtonItem = button;
end