lib/ProMotion/helpers/TabBar.rb in ProMotion-0.1.2 vs lib/ProMotion/helpers/TabBar.rb in ProMotion-0.2.0
- old
+ new
@@ -1,30 +1,127 @@
module ProMotion
class TabBar
class << self
- def tab_bar_item(args = {})
- title = "Untitled"
- title = args[:title] if args[:title]
- args[:tag] ||= 0
+ # def tab_bar_item(args = {})
+ # title = "Untitled"
+ # title = args[:title] if args[:title]
+ # args[:tag] ||= 0
- tb_item = tab_bar_icon(args[:system_icon], args[:tag]) if args[:system_icon]
- tb_item = tab_bar_icon_custom(title, args[:icon], args[:tag]) if args[:icon]
+ # tb_item = tab_bar_icon(args[:system_icon], args[:tag]) if args[:system_icon]
+ # tb_item = tab_bar_icon_custom(title, args[:icon], args[:tag]) if args[:icon]
- if tb_item
- tb_item.badgeValue = args[:badge_number].to_s unless args[:badge_number].nil? || tab[:badge_number] <= 0
+ # if tb_item
+ # tb_item.badgeValue = args[:badge_number].to_s unless args[:badge_number].nil? || tab[:badge_number] <= 0
- return tb_item
+ # return tb_item
+ # end
+ # nil
+ # end
+
+ # def tab_bar_icon(icon, tag)
+ # return UITabBarItem.alloc.initWithTabBarSystemItem(icon, tag: tag)
+ # end
+
+ # def tab_bar_icon_custom(title, image_name, tag)
+ # icon_image = UIImage.imageNamed(image_name)
+ # return UITabBarItem.alloc.initWithTitle(title, image:icon_image, tag:tag)
+ # end
+
+
+
+
+ def create_tab_bar_controller_from_data(data)
+ data = self.setTags(data)
+
+ tabBarController = UITabBarController.alloc.init
+ tabBarController.viewControllers = self.tab_controllers_from_data(data)
+
+ return tabBarController
+ end
+
+ def set_tags(data)
+ tag_number = 0
+
+ data.each do |d|
+ d[:tag] = tag_number
+ tag_number += 1
end
- nil
+
+ return data
end
def tab_bar_icon(icon, tag)
return UITabBarItem.alloc.initWithTabBarSystemItem(icon, tag: tag)
end
def tab_bar_icon_custom(title, image_name, tag)
icon_image = UIImage.imageNamed(image_name)
return UITabBarItem.alloc.initWithTitle(title, image:icon_image, tag:tag)
+ end
+
+ def tab_controllers_from_data(data)
+ mt_tab_controllers = []
+
+ data.each do |tab|
+ mt_tab_controllers << self.controller_from_tab_data(tab)
+ end
+
+ return mt_tab_controllers
+ end
+
+ def controller_from_tab_data(tab)
+ tab[:badgeNumber] = 0 unless tab[:badgeNumber]
+ tab[:tag] = 0 unless tab[:tag]
+
+ view_controller = tab[:view_controller]
+ view_controller = tab[:view_controller].alloc.init if tab[:view_controller].respond_to?(:alloc)
+
+ if tab[:navigationController]
+ controller = UINavigationController.alloc.initWithRootViewController(view_controller)
+ else
+ controller = view_controller
+ end
+
+ controller.tabBarItem = self.tabBarItem(tab)
+ controller.tabBarItem.title = controller.title unless tab[:title]
+
+ return controller
+ end
+
+ def tab_bar_item(tab)
+ title = "Untitled"
+ title = tab[:title] if tab[:title]
+ tab[:tag] ||= @current_tag ||= 0
+ @current_tag = tab[:tag] + 1
+
+ tab_bar_item = tab_bar_icon(tab[:system_icon], tab[:tag]) if tab[:system_icon]
+ tab_bar_item = tab_bar_icon_custom(title, tab[:icon], tab[:tag]) if tab[:icon]
+
+ tab_bar_item.badgeValue = tab[:badge_number].to_s unless tab[:badge_number].nil? || tab[:badge_number] <= 0
+
+ return tab_bar_item
+ end
+
+ def select(tab_bar_controller, title: title)
+ root_controller = nil
+ tab_bar_controller.viewControllers.each do |vc|
+ if vc.tabBarItem.title == title
+ tab_bar_controller.selectedViewController = vc
+ root_controller = vc
+ break
+ end
+ end
+ root_controller
+ end
+
+ def select(tab_bar_controller, tag: tag)
+ tab_bar_controller.selectedIndex = tag
+ end
+
+ def replace_current_item(tab_bar_controller, view_controller: vc)
+ controllers = NSMutableArray.arrayWithArray(tab_bar_controller.viewControllers)
+ controllers.replaceObjectAtIndex(tab_bar_controller.selectedIndex, withObject: vc)
+ tab_bar_controller.viewControllers = controllers
end
end
end
end
\ No newline at end of file