ProMotion 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/Gemfile +1 -0
  4. data/ProMotion.gemspec +14 -14
  5. data/README.md +26 -46
  6. data/Rakefile +13 -8
  7. data/lib/ProMotion.rb +2 -12
  8. data/lib/ProMotion/cocoatouch/navigation_controller.rb +11 -11
  9. data/lib/ProMotion/cocoatouch/split_view_controller.rb +4 -4
  10. data/lib/ProMotion/cocoatouch/tab_bar_controller.rb +5 -5
  11. data/lib/ProMotion/cocoatouch/table_view_cell.rb +2 -0
  12. data/lib/ProMotion/containers/split_screen.rb +4 -0
  13. data/lib/ProMotion/containers/tabs.rb +10 -8
  14. data/lib/ProMotion/delegate/delegate.rb +3 -0
  15. data/lib/ProMotion/delegate/delegate_module.rb +5 -0
  16. data/lib/ProMotion/extensions/conversions.rb +4 -4
  17. data/lib/ProMotion/map/map_screen.rb +4 -0
  18. data/lib/ProMotion/map/map_screen_module.rb +1 -1
  19. data/lib/ProMotion/screen/screen.rb +3 -0
  20. data/lib/ProMotion/screen/screen_module.rb +25 -1
  21. data/lib/ProMotion/screen/screen_navigation.rb +3 -3
  22. data/lib/ProMotion/table/cell/table_view_cell_module.rb +19 -3
  23. data/lib/ProMotion/table/grouped_table_screen.rb +5 -0
  24. data/lib/ProMotion/table/table.rb +5 -0
  25. data/lib/ProMotion/table/table_screen.rb +4 -0
  26. data/lib/ProMotion/version.rb +1 -1
  27. data/lib/ProMotion/view/styling.rb +22 -9
  28. data/lib/ProMotion/web/web_screen.rb +4 -0
  29. data/lib/ProMotion/web/web_screen_module.rb +1 -1
  30. data/spec/functional/func_image_title_screen.rb +20 -0
  31. data/spec/functional/func_image_view_title_screen.rb +20 -0
  32. data/spec/functional/func_screen_spec.rb +4 -0
  33. data/spec/functional/func_split_screen_spec.rb +7 -0
  34. data/spec/functional/func_view_title_screen.rb +21 -0
  35. data/spec/functional/func_web_screen_spec.rb +3 -3
  36. data/spec/helpers/image_title_screen.rb +15 -0
  37. data/spec/helpers/image_view_title_screen.rb +15 -0
  38. data/spec/helpers/map_screen.rb +4 -2
  39. data/spec/helpers/view_title_screen.rb +15 -0
  40. data/spec/helpers/web_screen.rb +7 -6
  41. data/spec/unit/map_spec.rb +10 -9
  42. data/spec/unit/screen_helpers_spec.rb +11 -7
  43. data/spec/unit/tables/table_module_spec.rb +1 -1
  44. data/spec/unit/view_helper_spec.rb +23 -6
  45. data/spec/unit/web_spec.rb +5 -5
  46. metadata +56 -47
  47. data/lib/ProMotion/thirdparty/formotion_screen.rb +0 -92
  48. data/spec/helpers/table_screen_formotion.rb +0 -50
  49. data/spec/unit/tables/formotion_screen_spec.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d52b3c967747924f07a39d41e638f10e7c3b4a6
4
- data.tar.gz: be1644c4f79b07f1abf082901b5049a2a6c01961
3
+ metadata.gz: d80aa6f8f7ae03f3f2be1c808fa782037024aa91
4
+ data.tar.gz: 773f16d3e3c22101d89685f69ec374626e6d078f
5
5
  SHA512:
6
- metadata.gz: 48f1861d837c3e923a3f6bb25b8e06ab63fd4ac432fd169c24cf702a7398b50c867768b759866840a780787cafcb84c1ec79b63f9a0c5344eaa3c1fa0b446ad5
7
- data.tar.gz: 48ae7511082003a422d3b4d13476a17ac92a472fbfc3eb73debc65f4da678964e6ea7722b7dd6f295814fc46e4fc6219dad4e4823576aa937c15469de1542905
6
+ metadata.gz: 8e3a843a9b12a979de97ee5f089830945b2f08f7db2943cadbc8cf88349c73e92b30fcf7de006af0b32c64fc1de00316d5db4798de2c87ffc82e38cf6149083a
7
+ data.tar.gz: 0ce42b3ff248b019b1e63badad6c0f700da9a930a0f494b1f7e2775953fe2d62a44f97688fc4ae461a376ed7e62d3cc4ea926a0c01ff3edc85bd35c7c528596c
data/CONTRIBUTING.md CHANGED
@@ -14,7 +14,7 @@ Over 20 developers have contributed to ProMotion. We love it when ProMotion user
14
14
  2. Create a feature branch
15
15
  3. Code
16
16
  4. Update or create new specs ** NOTE: your PR is far more likely to be merged if you include comprehensive tests! **
17
- 5. Make sure tests are passing by running `rake spec` *(you can run functional and unit specs separately with `rake spec:functional` and `rake spec:unit`)*
17
+ 5. Make sure tests are passing by running `rake spec` *(you can run functional and unit specs separately with `rake spec:func` and `rake spec:unit`, and a single spec with `rake spec:single f=test_file_name`)*
18
18
  6. Submit pull request to `edge` (for new features) or `master` (for bugfixes)
19
19
  7. Make a million little nitpicky changes that @jamonholmgren wants
20
20
  8. Merged, then fame, adoration, kudos everywhere
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'motion-require'
3
4
  # Specify your gem's dependencies in ProMotion.gemspec
4
5
  gemspec
data/ProMotion.gemspec CHANGED
@@ -2,14 +2,14 @@
2
2
  require File.expand_path('../lib/ProMotion/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Jamon Holmgren", "Silas Matson", "ClearSight Studio"]
6
- gem.email = ["jamon@clearsightstudio.com", "silas@clearsightstudio.com", "contact@clearsightstudio.com"]
7
- gem.description = "ProMotion is a new way to easily build RubyMotion iOS apps."
8
- gem.summary = "
9
- ProMotion is a new way to organize RubyMotion apps. Instead of dealing
10
- with UIViewControllers, you work with Screens. Screens are
11
- a logical way to think of your app and include a ton of great
12
- utilities to make iOS development more like Ruby and less like Objective-C.
5
+ gem.authors = ["Jamon Holmgren", "Silas Matson", "Mark Rickert"]
6
+ gem.email = ["jamon@clearsightstudio.com", "silas@clearsightstudio.com", "mark@mohawkapps.com"]
7
+ gem.summary = "ProMotion makes it easy to build RubyMotion iOS screen-based apps."
8
+ gem.description = "
9
+ ProMotion is a RubyMotion gem that makes iOS development more like Ruby and less like Objective-C.
10
+ It introduces a clean, Ruby-style syntax for building screens that is easy to learn and remember and
11
+ abstracts a ton of boilerplate UIViewController, UINavigationController, and other iOS code into a
12
+ simple, Ruby-like DSL.
13
13
  "
14
14
  gem.homepage = "https://github.com/clearsightstudio/ProMotion"
15
15
  gem.license = 'MIT'
@@ -21,10 +21,10 @@ Gem::Specification.new do |gem|
21
21
  gem.require_paths = ["lib"]
22
22
  gem.version = ProMotion::VERSION
23
23
 
24
- gem.add_development_dependency("rake")
25
- gem.add_development_dependency("webstub")
26
- gem.add_development_dependency("motion-stump")
27
- gem.add_development_dependency("motion-redgreen")
28
- gem.add_development_dependency("formotion")
29
- gem.add_dependency("methadone")
24
+ gem.add_dependency "motion-require", "~> 0.2"
25
+ gem.add_runtime_dependency("methadone", "~> 1.3")
26
+ gem.add_development_dependency("webstub", "~> 1.0")
27
+ gem.add_development_dependency("motion-stump", "~> 0.3")
28
+ gem.add_development_dependency("motion-redgreen", "~> 0.1")
29
+ gem.add_development_dependency("rake", "~> 10.1")
30
30
  end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # ProMotion [![Build Status](https://travis-ci.org/clearsightstudio/ProMotion.png)](https://travis-ci.org/clearsightstudio/ProMotion) [![Code Climate](https://codeclimate.com/github/clearsightstudio/ProMotion.png)](https://codeclimate.com/github/clearsightstudio/ProMotion)
1
+ # ProMotion [![Gem Version](https://badge.fury.io/rb/ProMotion.png)](http://badge.fury.io/rb/ProMotion) [![Build Status](https://travis-ci.org/clearsightstudio/ProMotion.png)](https://travis-ci.org/clearsightstudio/ProMotion) [![Code Climate](https://codeclimate.com/github/clearsightstudio/ProMotion.png)](https://codeclimate.com/github/clearsightstudio/ProMotion) [![Dependency Status](https://gemnasium.com/clearsightstudio/ProMotion.png)](https://gemnasium.com/clearsightstudio/ProMotion)
2
2
 
3
3
  ## iPhone Apps, Ruby-style
4
4
 
@@ -23,10 +23,10 @@ class RootScreen < PM::Screen
23
23
  title "Root Screen"
24
24
 
25
25
  def on_load
26
- set_nav_bar_button :right, title: "Help", action: :help
26
+ set_nav_bar_button :right, title: "Help", action: :open_help_screen
27
27
  end
28
28
 
29
- def help
29
+ def open_help_screen
30
30
  open HelpScreen
31
31
  end
32
32
  end
@@ -44,6 +44,14 @@ class HelpScreen < PM::TableScreen
44
44
  ]
45
45
  }]
46
46
  end
47
+
48
+ def tapped_about(args={})
49
+ open AboutScreen
50
+ end
51
+
52
+ def log_out
53
+ # Log out!
54
+ end
47
55
  end
48
56
  ```
49
57
 
@@ -67,48 +75,19 @@ end
67
75
  # Getting Started
68
76
 
69
77
  1. Check out the [Getting Started Guide](https://github.com/clearsightstudio/ProMotion/wiki/Guide:-Getting-Started) in the wiki
70
- 2. Follow a tutorial: [Building an ESPN app using RubyMotion, ProMotion, and TDD](http://jamonholmgren.com/building-an-espn-app-using-rubymotion-promotion-and-tdd)
78
+ 2. Watch the excellent [MotionInMotion screencast about ProMotion](https://motioninmotion.tv/screencasts/8) (very reasonably priced subscription required)
79
+ 3. Follow a tutorial: [Building an ESPN app using RubyMotion, ProMotion, and TDD](http://jamonholmgren.com/building-an-espn-app-using-rubymotion-promotion-and-tdd)
71
80
 
72
81
  # What's New?
73
82
 
74
- ## Version 1.1.x
75
-
76
- * Added a [ProMotion executable](https://github.com/clearsightstudio/ProMotion/wiki/Command-Line-Tool) called `promotion`. You can type `promotion new <myapp>` and it will create a ProMotion-specific app. We will be adding more functionality in the future.
77
- * Can now pass a symbol to `add`, `add_to`, and `set_attributes` to call a method with that name to get styles.
78
- * Added `button_title:` to `open_split_screen` to [customize the auto-generated button title](https://github.com/clearsightstudio/ProMotion/wiki/API-Reference:-ProMotion::SplitScreen#open_split_screenmaster-detail-args--)
79
- * Updates to [set_tab_bar_button](https://github.com/clearsightstudio/ProMotion/wiki/API-Reference:-ProMotion::Tabs#set_tab_bar_itemargs)
80
- * Added to PM::Delegate [`on_open_url(args = {})`](https://github.com/clearsightstudio/ProMotion/wiki/API-Reference:-ProMotion::Delegate#on_open_urlargs--) where `args` contains `:url`, `:source_app`, and `:annotation`
81
- * Added to PM::Delegate [`tint_color`](https://github.com/clearsightstudio/ProMotion/wiki/API-Reference:-ProMotion::Delegate#tint_color) to customize the application-wide tint color
82
- * Added to [PM::MapScreen annotations](https://github.com/clearsightstudio/ProMotion/wiki/API-Reference:-ProMotion::MapScreen) the ability to set an image
83
- * Removed legacy `navigation_controller` references which were causing confusion.
84
- * Allowed setting a `custom_view` for `bar_button_item`s.
85
- * Added `will_begin_search` and `will_end_search` callbacks to PM::TableScreen.
86
- * Added `title_view` and `title_view_height` to sections in PM::TableScreen.
87
- * Updated screenshots for iOS 7
88
- * Refactored code and lots of new passing tests
89
-
90
- # Tutorials
91
-
92
- Shows how to make a basic app in ProMotion. Updated in May.
93
-
94
- [http://www.clearsightstudio.com/insights/ruby-motion-promotion-tutorial](http://www.clearsightstudio.com/insights/ruby-motion-promotion-tutorial)
95
-
96
- ## Screencasts
83
+ ## Version 1.2.x
97
84
 
98
- Shows how to create a Youtube app that shows Portland Trailblazer highlights.
99
-
100
- [http://www.clearsightstudio.com/insights/tutorial-make-youtube-video-app-rubymotion-promotion/](http://www.clearsightstudio.com/insights/tutorial-make-youtube-video-app-rubymotion-promotion/)
101
-
102
- ## Sample Apps
103
-
104
- Here's a demo app that is used to test new functionality. You might have to change the Gemfile
105
- source to pull from Github.
106
-
107
- [https://github.com/jamonholmgren/promotion-demo](https://github.com/jamonholmgren/promotion-demo)
108
-
109
- Here's a demo app showing some styling options.
110
-
111
- [https://github.com/jamonholmgren/promotion-styling](https://github.com/jamonholmgren/promotion-styling)
85
+ 1. Now uses [motion-require](https://github.com/clayallsopp/motion-require) for better compatibility with other libraries [6046dd7f4](https://github.com/clearsightstudio/ProMotion/commit/6046dd7f49ba174f309baaa428eaac80ce0290b6)
86
+ 2. SplitScreen: New option `swipe:` allows you to specify if a splitscreen master screen can be opened with a swipe. [ffbb76caf](https://github.com/clearsightstudio/ProMotion/commit/ffbb76caf3071297347d4cf43784069999a746b3)
87
+ 3. FormotionScreen: Removed `PM::FormotionScreen` and the Formotion testing dependency. Use [ProMotion-formotion](https://github.com/rheoli/ProMotion-formotion) instead.
88
+ 4. Styling: Added a `content_width` helper to PM::Styling (similar to `content_height`) [08a984815](https://github.com/clearsightstudio/ProMotion/commit/08a984815a7c96b9465c31b2e2664ac0086d2e1c)
89
+ 5. TableScreen: Removed SDWebImage in favor of similar but more reliable JDImageCache [59ed747e9](https://github.com/clearsightstudio/ProMotion/commit/59ed747e93567e32bdb5099fed12297161cea05a)
90
+ 6. Screen: Allow custom views (including images) for `title` setting [#415](https://github.com/clearsightstudio/ProMotion/pull/415)
112
91
 
113
92
  # API Reference
114
93
 
@@ -118,13 +97,16 @@ We've created a comprehensive and always updated wiki with code examples, usage
118
97
 
119
98
  # Help
120
99
 
100
+ ProMotion is not only an easy DSL to get started. The community is very helpful and
101
+ welcoming to new RubyMotion developers. We don't mind newbie questions.
102
+
121
103
  If you need help, feel free to tweet [@jamonholmgren](http://twitter.com/jamonholmgren)
122
- or open an issue on GitHub. Opening an issue is usually the best and we respond to those pretty quickly.
123
- If we don't respond within a day, tweet Jamon or Mark a link to the issue.
104
+ or open an issue on GitHub. Opening an issue is usually the best and we respond to those
105
+ pretty quickly. If we don't respond within a day, tweet Jamon or Mark a link to the issue.
124
106
 
125
107
  # Contributing
126
108
 
127
- See [CONTRIBUTING.md](https://github.com/clearsightstudio/ProMotion/edit/master/CONTRIBUTING.md).
109
+ See [CONTRIBUTING.md](https://github.com/clearsightstudio/ProMotion/blob/master/CONTRIBUTING.md).
128
110
 
129
111
  ## Primary Contributors
130
112
 
@@ -133,5 +115,3 @@ See [CONTRIBUTING.md](https://github.com/clearsightstudio/ProMotion/edit/master/
133
115
  * Matt Brewer: [@macfanatic](https://twitter.com/macfanatic)
134
116
  * Mark Rickert: [@markrickert](https://twitter.com/markrickert)
135
117
  * [Many others](https://github.com/clearsightstudio/ProMotion/graphs/contributors)
136
- * Run `git shortlog -s -n -e` to see everyone who has contributed.
137
-
data/Rakefile CHANGED
@@ -1,11 +1,7 @@
1
1
  $:.unshift("/Library/RubyMotion/lib")
2
2
  require 'motion/project/template/ios'
3
3
  require 'bundler'
4
-
5
- # this follow from gemspec
6
4
  Bundler.require(:development)
7
-
8
- # this follow development code
9
5
  require 'ProMotion'
10
6
 
11
7
  Motion::Project::App.setup do |app|
@@ -17,8 +13,6 @@ Motion::Project::App.setup do |app|
17
13
  # Devices
18
14
  app.deployment_target = "6.0"
19
15
  app.device_family = [:ipad] # so we can test split screen capability
20
-
21
- app.detect_dependencies = true
22
16
  end
23
17
 
24
18
  def all_files
@@ -26,11 +20,11 @@ def all_files
26
20
  end
27
21
 
28
22
  def functional_files
29
- Dir.glob('./spec/functional/*.rb')
23
+ Dir.glob('./spec/functional/**/*.rb')
30
24
  end
31
25
 
32
26
  def unit_files
33
- Dir.glob('./spec/unit/*.rb')
27
+ Dir.glob('./spec/unit/**/*.rb')
34
28
  end
35
29
 
36
30
  namespace :spec do
@@ -54,6 +48,17 @@ namespace :spec do
54
48
  Rake::Task["simulator"].invoke
55
49
  end
56
50
 
51
+ task :single do
52
+ App.config.spec_mode = true
53
+ spec_files = App.config.spec_files
54
+ spec_files -= unit_files
55
+ spec_files -= functional_files
56
+ spec_files += Dir.glob("./spec/unit/**/#{ENV['f'] || ENV['file']}.rb")
57
+ spec_files += Dir.glob("./spec/functional/**/#{ENV['f'] || ENV['file']}.rb")
58
+ App.config.instance_variable_set("@spec_files", spec_files)
59
+ Rake::Task["simulator"].invoke
60
+ end
61
+
57
62
  end
58
63
 
59
64
  task :sim_close do
data/lib/ProMotion.rb CHANGED
@@ -1,13 +1,3 @@
1
- unless defined?(Motion::Project::Config)
2
- raise "This file must be required within a RubyMotion project Rakefile."
3
- end
1
+ require 'motion-require'
4
2
 
5
- require "ProMotion/version"
6
-
7
- Motion::Project::App.setup do |app|
8
- app.detect_dependencies = true
9
- original_files = app.files
10
- delegate = File.join(File.dirname(__FILE__), 'ProMotion/delegate/delegate.rb')
11
- promotion_files = FileList[File.join(File.dirname(__FILE__), 'ProMotion/**/*.rb')].exclude(delegate).to_a
12
- app.files = (promotion_files << delegate) + original_files
13
- end
3
+ Motion::Require.all(Dir.glob(File.expand_path('../ProMotion/**/*.rb', __FILE__)))
@@ -1,15 +1,15 @@
1
1
  module ProMotion
2
- class NavigationController < UINavigationController
3
- def shouldAutorotate
4
- visibleViewController.shouldAutorotate
5
- end
2
+ class NavigationController < UINavigationController
3
+ def shouldAutorotate
4
+ visibleViewController.shouldAutorotate
5
+ end
6
6
 
7
- def supportedInterfaceOrientations
8
- visibleViewController.supportedInterfaceOrientations
9
- end
7
+ def supportedInterfaceOrientations
8
+ visibleViewController.supportedInterfaceOrientations
9
+ end
10
10
 
11
- def preferredInterfaceOrientationForPresentation
12
- visibleViewController.preferredInterfaceOrientationForPresentation
13
- end
14
- end
11
+ def preferredInterfaceOrientationForPresentation
12
+ visibleViewController.preferredInterfaceOrientationForPresentation
13
+ end
14
+ end
15
15
  end
@@ -4,16 +4,16 @@ module ProMotion
4
4
  s = self.viewControllers.first
5
5
  s.respond_to?(:visibleViewController) ? s.visibleViewController : s
6
6
  end
7
-
7
+
8
8
  def detail_screen
9
9
  s = self.viewControllers.last
10
10
  s.respond_to?(:visibleViewController) ? s.visibleViewController : s
11
11
  end
12
-
12
+
13
13
  def master_screen=(s)
14
14
  self.viewControllers = [ (s.navigationController || s), self.viewControllers.last]
15
15
  end
16
-
16
+
17
17
  def detail_screen=(s)
18
18
  # set the button from the old detail screen to the new one
19
19
  button = detail_screen.navigationItem.leftBarButtonItem
@@ -21,7 +21,7 @@ module ProMotion
21
21
 
22
22
  self.viewControllers = [self.viewControllers.first, (s.navigationController || s)]
23
23
  end
24
-
24
+
25
25
  def screens=(s_array)
26
26
  self.viewControllers = s_array
27
27
  end
@@ -1,6 +1,6 @@
1
1
  module ProMotion
2
2
  class TabBarController < UITabBarController
3
-
3
+
4
4
  def self.new(*screens)
5
5
  tab_bar_controller = alloc.init
6
6
 
@@ -19,14 +19,14 @@ module ProMotion
19
19
  tab_bar_controller.viewControllers = view_controllers
20
20
  tab_bar_controller
21
21
  end
22
-
22
+
23
23
  def open_tab(tab)
24
24
  if tab.is_a? String
25
25
  selected_tab_vc = find_tab(tab)
26
26
  elsif tab.is_a? Numeric
27
27
  selected_tab_vc = viewControllers[tab]
28
28
  end
29
-
29
+
30
30
  if selected_tab_vc
31
31
  self.selectedViewController = selected_tab_vc if selected_tab_vc
32
32
  else
@@ -34,10 +34,10 @@ module ProMotion
34
34
  nil
35
35
  end
36
36
  end
37
-
37
+
38
38
  def find_tab(tab_title)
39
39
  self.viewControllers.select{ |vc| vc.tabBarItem.title == tab_title }.first
40
40
  end
41
-
41
+
42
42
  end
43
43
  end
@@ -1,3 +1,5 @@
1
+ motion_require '../table/cell/table_view_cell_module'
2
+
1
3
  module ProMotion
2
4
  class TableViewCell < UITableViewCell
3
5
  include TableViewCellModule
@@ -26,6 +26,10 @@ module ProMotion
26
26
  @button_title = args[:button_title]
27
27
  end
28
28
 
29
+ if args.has_key?(:swipe)
30
+ split.presentsWithGesture = args[:swipe]
31
+ end
32
+
29
33
  split
30
34
  end
31
35
 
@@ -1,9 +1,11 @@
1
+ motion_require '../extensions/conversions'
2
+
1
3
  module ProMotion
2
4
  module Tabs
3
5
  include Conversions
4
-
6
+
5
7
  attr_accessor :tab_bar, :tab_bar_item
6
-
8
+
7
9
  def open_tab_bar(*screens)
8
10
  self.tab_bar = PM::TabBarController.new(screens)
9
11
 
@@ -43,7 +45,7 @@ module ProMotion
43
45
  icon_unselected = icon_image[:unselected]
44
46
  icon_image = nil
45
47
  end
46
-
48
+
47
49
  item = UITabBarItem.alloc.initWithTitle(title, image:icon_image, tag:tag)
48
50
 
49
51
  if icon_selected || icon_unselected
@@ -66,13 +68,13 @@ module ProMotion
66
68
 
67
69
  return tab_bar_item
68
70
  end
69
-
71
+
70
72
  def replace_current_item(tab_bar_controller, view_controller: vc)
71
73
  controllers = NSMutableArray.arrayWithArray(tab_bar_controller.viewControllers)
72
74
  controllers.replaceObjectAtIndex(tab_bar_controller.selectedIndex, withObject: vc)
73
75
  tab_bar_controller.viewControllers = controllers
74
76
  end
75
-
77
+
76
78
  def map_tab_symbol(symbol)
77
79
  @_tab_symbols ||= {
78
80
  more: UITabBarSystemItemMore,
@@ -90,7 +92,7 @@ module ProMotion
90
92
  }
91
93
  @_tab_symbols[symbol] || symbol
92
94
  end
93
-
95
+
94
96
  module TabClassMethods
95
97
  def tab_bar_item(args={})
96
98
  @tab_bar_item = args
@@ -99,10 +101,10 @@ module ProMotion
99
101
  @tab_bar_item
100
102
  end
101
103
  end
102
-
104
+
103
105
  def self.included(base)
104
106
  base.extend(TabClassMethods)
105
107
  end
106
-
108
+
107
109
  end
108
110
  end
@@ -1,3 +1,6 @@
1
+ motion_require 'delegate_module'
2
+ motion_require 'delegate_parent'
3
+
1
4
  module ProMotion
2
5
  class Delegate < DelegateParent
3
6
  include ProMotion::DelegateModule
@@ -1,3 +1,7 @@
1
+ motion_require '../containers/tabs'
2
+ motion_require '../containers/split_screen'
3
+ motion_require 'delegate_notifications'
4
+
1
5
  module ProMotion
2
6
  module DelegateModule
3
7
  include ProMotion::Tabs
@@ -8,6 +12,7 @@ module ProMotion
8
12
 
9
13
  def application(application, willFinishLaunchingWithOptions:launch_options)
10
14
  will_load(application, launch_options) if respond_to?(:will_load)
15
+ true
11
16
  end
12
17
 
13
18
  def application(application, didFinishLaunchingWithOptions:launch_options)