motion-tab 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Motion::Tab
2
2
 
3
- TODO: Write a gem description
3
+ Easily create a UITabBar in a RubyMotion app.
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,7 +18,34 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ Basic usage (more documentation is forthcoming):
22
+
23
+ ```ruby
24
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
25
+ @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
26
+
27
+ tabs = [
28
+ {
29
+ systemIcon: UITabBarSystemItemContacts,
30
+ navigationController: true,
31
+ viewController: ContactsViewController
32
+ }, {
33
+ title: "Custom",
34
+ icon: "custom.png",
35
+ navigationController: false,
36
+ viewController: CustomViewController
37
+ }, {
38
+ title: "Settings",
39
+ icon: "settings.png",
40
+ navigationController: true,
41
+ viewController: SettingsViewController
42
+ }
43
+ ]
44
+
45
+ @window.rootViewController = MotionTab::TabBar.createTabBarControllerFromData(tabs)
46
+ @window.makeKeyAndVisible
47
+ end
48
+ ```
22
49
 
23
50
  ## Contributing
24
51
 
@@ -2,39 +2,59 @@ module MotionTab
2
2
  class TabBar
3
3
  class << self
4
4
  def createTabBarControllerFromData(data)
5
+ tabBarController = UITabBarController.alloc.init
6
+ tabBarController.viewControllers = self.tabControllersFromData(data)
7
+
8
+ return tabBarController
9
+ end
10
+
11
+ def tabBarIcon(icon, tag = 0)
12
+ return UITabBarItem.alloc.initWithTabBarSystemItem(icon, tag: tag)
13
+ end
14
+
15
+ def tabBarIconCustom(title, imageName, tag = 0)
16
+ iconImage = UIImage.imageNamed(imageName)
17
+ return UITabBarItem.alloc.initWithTitle(title, image:iconImage, tag:tag)
18
+ end
19
+
20
+ def tabControllersFromData(data)
5
21
  mt_tab_controllers = []
6
22
 
7
23
  data.each do |tab|
8
- tab[:badgeNumber] = 0 unless tab[:badgeNumber]
9
- tab[:tag] = 0 unless tab[:tag]
10
-
11
- viewController = tab[:viewController].alloc.init
12
- viewController.tabBarItem = tabBarIcon(tab[:systemIcon], tab[:tag]) if tab[:systemIcon]
13
- viewController.tabBarItem.badgeValue = tab[:badgeNumber].to_s unless tab[:badgeNumber].nil? || tab[:badgeNumber] <= 0
14
-
15
- if tab[:navigationController]
16
- controller = UINavigationController.alloc.initWithRootViewController(viewController)
17
- else
18
- controller = viewController
19
- end
20
-
21
- if tab[:title]
22
- controller.tabBarItem.title = tab[:title]
23
- else
24
- controller.tabBarItem.title = viewController.title
25
- end
26
-
27
- mt_tab_controllers << controller
24
+ mt_tab_controllers << self.controllerFromTabData(tab)
28
25
  end
29
26
 
30
- tabBarController = UITabBarController.alloc.init
31
- tabBarController.viewControllers = mt_tab_controllers
27
+ return mt_tab_controllers
28
+ end
32
29
 
33
- return tabBarController
30
+ def controllerFromTabData(tab)
31
+ tab[:badgeNumber] = 0 unless tab[:badgeNumber]
32
+ tab[:tag] = 0 unless tab[:tag]
33
+
34
+ viewController = tab[:viewController].alloc.init
35
+
36
+ if tab[:navigationController]
37
+ controller = UINavigationController.alloc.initWithRootViewController(viewController)
38
+ else
39
+ controller = viewController
40
+ end
41
+
42
+ controller.tabBarItem = self.tabBarItem(tab)
43
+ controller.tabBarItem.title = controller.title unless tab[:title]
44
+
45
+ return controller
34
46
  end
35
47
 
36
- def tabBarIcon(icon, tag = 0)
37
- return UITabBarItem.alloc.initWithTabBarSystemItem(icon, tag: tag)
48
+ def tabBarItem(tab)
49
+ title = "Untitled"
50
+ title = tab[:title] if tab[:title]
51
+
52
+ tabBarItem = tabBarIcon(tab[:systemIcon], tab[:tag]) if tab[:systemIcon]
53
+ tabBarItem = tabBarIconCustom(title, tab[:icon]) if tab[:icon]
54
+
55
+ tabBarItem.badgeValue = tab[:badgeNumber].to_s unless tab[:badgeNumber].nil? || tab[:badgeNumber] <= 0
56
+
57
+ return tabBarItem
38
58
  end
39
59
  end
40
60
  end
@@ -1,3 +1,3 @@
1
1
  module MotionTab
2
- VERSION = "0.1.2" unless defined?(MotionTab::VERSION)
2
+ VERSION = "0.2.0" unless defined?(MotionTab::VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-tab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: