module ViewTags
def self.included(base)
base.extend ClassMethods
end
def get_view_with_name(name)
view.view_with_tag(self.class.getTagFor(name))
end
def get_view_in(parent,with_name:name)
parent.view_with_tag(self.class.get_tag_for(name))
end
module ClassMethods
def has_view(name, with_tag:tag)
@view_tags ||= {}
@view_tags[name] = tag
end
def get_tag_for(name)
@view_tags[name]
end
end
endclass MyViewController < UIViewController
include ViewTags
has_view :date_label, with_tag:1
def loadView
views = NSBundle.mainBundle.loadNibNamed "myview", owner:self, options:nil
self.view = views[0]
end
def viewDidLoad
@date_label = get_view(:date_label)
end
end