Sha256: 631cc272f1b613e2752a18e7ddf2cae0f1dd2f93c65fab1726145d0ce4ce25f9

Contents?: true

Size: 1.13 KB

Versions: 3

Compression:

Stored size: 1.13 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]
          screen = Screen.create_with_options(screen).try(:weak_ref)
          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

3 entries across 3 versions & 1 rubygems

Version Path
motion-prime-0.5.2 motion-prime/support/tab_bar_controller.rb
motion-prime-0.5.1 motion-prime/support/tab_bar_controller.rb
motion-prime-0.5.0 motion-prime/support/tab_bar_controller.rb