Skip to content

Commit fad2867

Browse files
committed
Added convenience init so you can initialize VIPER modules with code created View Controllers (without .xib).
1 parent 2667068 commit fad2867

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

swifty_viper/Code/Configurator/configurator.swift.liquid

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class {{ module_info.name }}ModuleConfigurator {
1313
func configureModuleForViewInput<UIViewController>(viewInput: UIViewController) {
1414

1515
if let viewController = viewInput as? {{ module_info.name }}ViewController {
16-
configure(viewController)
16+
configure(viewController: viewController)
1717
}
1818
}
1919

swifty_viper/Code/Configurator/initializer.swift.liquid

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
//
23
// {{ prefix }}{{ module_info.name }}{{ module_info.file_name }}
34
// {{ module_info.project_name }}
@@ -16,7 +17,13 @@ class {{ module_info.name }}ModuleInitializer: NSObject {
1617
override func awakeFromNib() {
1718

1819
let configurator = {{ module_info.name }}ModuleConfigurator()
19-
configurator.configureModuleForViewInput({{ module_info.name | downcase }}ViewController)
20+
configurator.configureModuleForViewInput(viewInput: {{ module_info.name | downcase }}ViewController)
21+
}
22+
23+
convenience init({{ module_info.name | downcase }}ViewController: {{ module_info.name }}ViewController) {
24+
self.init()
25+
let configurator = {{ module_info.name }}ModuleConfigurator()
26+
configurator.configureModuleForViewInput(viewInput: {{ module_info.name | downcase }}ViewController)
2027
}
2128

2229
}

swifty_viper/Tests/Configurator/configurator_tests.swift.liquid

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class {{ module_info.name }}ModuleConfiguratorTests: XCTestCase {
2727
let configurator = {{ module_info.name }}ModuleConfigurator()
2828

2929
//when
30-
configurator.configureModuleForViewInput(viewController)
30+
configurator.configureModuleForViewInput(viewInput: viewController)
3131

3232
//then
3333
XCTAssertNotNil(viewController.output, "{{ module_info.name }}ViewController is nil after configuration")

0 commit comments

Comments
 (0)