diff --git a/Model/Model/ContainerViewController/ContainerViewController.swift b/Model/Model/ContainerViewController/ContainerViewController.swift index e37835a..d9f7df8 100644 --- a/Model/Model/ContainerViewController/ContainerViewController.swift +++ b/Model/Model/ContainerViewController/ContainerViewController.swift @@ -45,6 +45,10 @@ open class ContainerViewController: UIViewController { return contentViewController } + open override var childForHomeIndicatorAutoHidden: UIViewController? { + return contentViewController + } + /// Method creates and returns default transition context to implement animation between old and new content view controller. /// Override it to use your custom transition context. It wouldn't be deallocated until animation has ended. /// - parameter containerView: will be a container view for future animation diff --git a/Model/Model/Coordinator/ContainerCoordinator.swift b/Model/Model/Coordinator/ContainerCoordinator.swift index e911c7c..d9765c5 100644 --- a/Model/Model/Coordinator/ContainerCoordinator.swift +++ b/Model/Model/Coordinator/ContainerCoordinator.swift @@ -74,4 +74,17 @@ open class ContainerCoordinator: Coordinator { override open var activeViewController: UIViewController? { return containerViewController.contentViewController } + + /// Sets new content coordinator with animator + /// - parameter newCoordinator: coordinator to set + /// - parameter animator: transition animator for setContentViewController func + open func setContentCoordinator(_ newCoordinator: Coordinator?, animator: UIViewControllerAnimatedTransitioning? = nil) { + if let coordinator = contentCoordinator { + coordinator.removeFromParent() + } + if let coordinator = newCoordinator { + add(child: coordinator) + } + containerViewController.setContentViewController(newCoordinator?.baseViewController, animator: animator) + } }