diff --git a/CHANGELOG.md b/CHANGELOG.md index 275eab44..2e0463d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 0.7.2 + +- **Fixed**: Change root controller for window + ### 0.7.1 - **Add**: Extension for comparing optional arrays (`[T]?`) with `Equatable` elements. - **Add**: `additionalHttpHeaders` static field in `ConfigurableNetworkService` protocol. diff --git a/LeadKit.podspec b/LeadKit.podspec index 7874d965..79bec383 100644 --- a/LeadKit.podspec +++ b/LeadKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "LeadKit" - s.version = "0.7.1" + s.version = "0.7.2" s.summary = "iOS framework with a bunch of tools for rapid development" s.homepage = "https://github.com/TouchInstinct/LeadKit" s.license = "Apache License, Version 2.0" diff --git a/Sources/Extensions/UIWindow/UIWindow+Extensions.swift b/Sources/Extensions/UIWindow/UIWindow+Extensions.swift index 22514fc5..b9cc0f05 100644 --- a/Sources/Extensions/UIWindow/UIWindow+Extensions.swift +++ b/Sources/Extensions/UIWindow/UIWindow+Extensions.swift @@ -32,10 +32,17 @@ public extension UIWindow { /// Method changes root controller in window. /// /// - Parameter controller: New root controller. - func changeRootController(controller: UIViewController) { - animateRootViewControllerChanging(controller: controller) + /// - Parameter animated: Indicates whether to use animation or not. + func changeRootController(controller: UIViewController, animated: Bool = true) { + if animated { + animateRootViewControllerChanging(controller: controller) + } + + let previousRoot = rootViewController + previousRoot?.dismiss(animated: false) { + previousRoot?.view.removeFromSuperview() + } - rootViewController?.dismiss(animated: false, completion: nil) rootViewController = controller makeKeyAndVisible() }