Sha256: feba182dec5f2d8156c46e7671a55130e6ae9c71f9d3ba357b273fc4305ed82e

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module MotionPrime
  class TabBarController < UITabBarController
    def self.new(screens)
      controller = alloc.init

      view_controllers = []

      screens.each_with_index do |screen, index|
        if screen.is_a?(Hash)
          screen, image, title = screen[:screen], screen[:image], screen[:title]
          title ||= screen.title
          image = image.uiimage if image
          screen.tabBarItem = UITabBarItem.alloc.initWithTitle title, image: image, tag: index
        else
          screen.tabBarItem.tag = index
        end

        screen.send(:on_screen_load) if screen.respond_to?(:on_screen_load)
        screen.wrap_in_navigation if screen.respond_to?(:wrap_in_navigation)
        screen.tab_bar = controller if screen.respond_to?(:tab_bar=)
        view_controllers << screen.main_controller
      end

      controller.viewControllers = view_controllers
      controller
    end
    
    def open_tab(tab)
      controller = viewControllers[tab]
      if controller
        self.selectedViewController = controller
      end
      controller
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
motion-prime-0.4.4 motion-prime/support/tab_bar_controller.rb
motion-prime-0.4.3 motion-prime/support/tab_bar_controller.rb