From 01795b6b18fdb91371c918bf11d8fab953f56aa1 Mon Sep 17 00:00:00 2001 From: nikAshanin Date: Tue, 17 Jan 2017 18:08:45 +0300 Subject: [PATCH] add extension for StoryboardProtocol --- LeadKit/LeadKit/Info.plist | 2 +- LeadKit/LeadKit/Protocols/BaseViewModel.swift | 2 +- .../Protocols/ConfigurableController.swift | 31 +++++++++++-------- .../Protocols/ModuleConfigurator.swift | 4 +-- .../Protocols/StoryboardProtocol.swift | 12 +++++++ 5 files changed, 34 insertions(+), 17 deletions(-) diff --git a/LeadKit/LeadKit/Info.plist b/LeadKit/LeadKit/Info.plist index e1dc5748..d68312bc 100644 --- a/LeadKit/LeadKit/Info.plist +++ b/LeadKit/LeadKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.3.3 + 0.3.4 CFBundleSignature ???? CFBundleVersion diff --git a/LeadKit/LeadKit/Protocols/BaseViewModel.swift b/LeadKit/LeadKit/Protocols/BaseViewModel.swift index 0df125d9..a6521eff 100644 --- a/LeadKit/LeadKit/Protocols/BaseViewModel.swift +++ b/LeadKit/LeadKit/Protocols/BaseViewModel.swift @@ -22,6 +22,6 @@ import Foundation -protocol BaseViewModel { +public protocol BaseViewModel { // Nothing } diff --git a/LeadKit/LeadKit/Protocols/ConfigurableController.swift b/LeadKit/LeadKit/Protocols/ConfigurableController.swift index e6934b4a..0dd264b1 100644 --- a/LeadKit/LeadKit/Protocols/ConfigurableController.swift +++ b/LeadKit/LeadKit/Protocols/ConfigurableController.swift @@ -23,49 +23,54 @@ import Foundation import UIKit -protocol ConfigurableController { +public protocol ConfigurableController { associatedtype ViewModelT - var viewModel: ViewModelT { get } + public var viewModel: ViewModelT { get } - func bindViews(with _: ViewModelT) + public func bindViews() - func addViews() + public func addViews() - func setAppearance() + public func setAppearance() - func configureBarButtons() + public func configureBarButtons() - func localize() + public func localize() - func initialLoadView() + public func initialLoadView() } extension ConfigurableController where Self: UIViewController { - func addViews() { + public func bindViews() { // nothing } - func setAppearance() { + public func addViews() { // nothing } - func configureBarButtons() { + public func setAppearance() { // nothing } - func localize() { + public func configureBarButtons() { // nothing } - func initialLoadView() { + public func localize() { + // nothing + } + + public func initialLoadView() { addViews() setAppearance() configureBarButtons() localize() + bindViews() } } diff --git a/LeadKit/LeadKit/Protocols/ModuleConfigurator.swift b/LeadKit/LeadKit/Protocols/ModuleConfigurator.swift index 1fe158f1..177f936a 100644 --- a/LeadKit/LeadKit/Protocols/ModuleConfigurator.swift +++ b/LeadKit/LeadKit/Protocols/ModuleConfigurator.swift @@ -20,9 +20,9 @@ // THE SOFTWARE. // -protocol ModuleConfigurator { +public protocol ModuleConfigurator { associatedtype ViewControllerT - func configure(input: ViewControllerT) + public func configure(input: ViewControllerT) } diff --git a/LeadKit/LeadKit/Protocols/StoryboardProtocol.swift b/LeadKit/LeadKit/Protocols/StoryboardProtocol.swift index c12c1451..3fe4507c 100644 --- a/LeadKit/LeadKit/Protocols/StoryboardProtocol.swift +++ b/LeadKit/LeadKit/Protocols/StoryboardProtocol.swift @@ -50,3 +50,15 @@ public protocol StoryboardProtocol { static func instantiateViewController(_: ViewControllerIdentifier) -> UIViewController } + +public extension StoryboardProtocol { + + public static func instantiate(_ identificator: Self.ViewControllerIdentifier) -> T { + guard let controller = instantiateViewController(identificator) as? T else { + assertionFailure("\(T.self) not created") + return T() + } + return controller + } + +}