Class: Tgios::ExtendedUIViewController

Inherits:
UIViewController
  • Object
show all
Defined in:
lib/tgios/extended_ui_view_controller.rb

Direct Known Subclasses

PhotoController, SearchController

Instance Method Summary collapse

Instance Method Details

#deallocObject



50
51
52
53
# File 'lib/tgios/extended_ui_view_controller.rb', line 50

def dealloc
  ap "#{self.class.name} dealloc"
  super
end

#dismissViewControllerAnimated(flag, completion: completion) ⇒ Object



43
44
45
46
47
48
# File 'lib/tgios/extended_ui_view_controller.rb', line 43

def dismissViewControllerAnimated(flag, completion:completion)
  super(flag, ->{
    self.prepareForRelease()
    completion.call unless completion.nil?
  })
end

#hook(control, event, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/tgios/extended_ui_view_controller.rb', line 18

def hook(control, event, &block)
  binding=if control.is_a?(UIButton)
            UIButtonBinding.new.bind(control).on(event, &block)
          end

  @bindings << binding
  binding

end

#onPrepareForReleaseObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/tgios/extended_ui_view_controller.rb', line 14

def onPrepareForRelease
  raise NotImplementedError.new("onPrepareForRelease not overridden for class #{self.class.name}")
end

#prepareForReleaseObject



9
10
11
12
# File 'lib/tgios/extended_ui_view_controller.rb', line 9

def prepareForRelease
  @bindings=nil
  onPrepareForRelease
end

#unhook(control, event) ⇒ Object



28
29
30
31
32
# File 'lib/tgios/extended_ui_view_controller.rb', line 28

def unhook(control, event)
  if control.is_a?(UIButton)
    UIButtonBinding.unbind(control)
  end
end

#viewDidDisappear(animated) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/tgios/extended_ui_view_controller.rb', line 34

def viewDidDisappear(animated)
  if self.isMovingFromParentViewController
    ap "#{self.class.name} view moving away, prepare for release"
    # cut off all crap to avoid memory leak
    self.prepareForRelease()
  end
  super
end

#viewDidLoadObject



3
4
5
6
7
# File 'lib/tgios/extended_ui_view_controller.rb', line 3

def viewDidLoad
  super
  self.edgesForExtendedLayout = UIRectEdgeNone if self.respond_to?(:edgesForExtendedLayout)
  @bindings=[]
end