Commit e177ac38 by Daniel Dahan Committed by GitHub

Merge pull request #920 from markst/issue/919

Tab bar controller dynamically adds & removes child view controllers
parents 6f9098e6 fecae48e
...@@ -197,13 +197,15 @@ fileprivate extension TabsController { ...@@ -197,13 +197,15 @@ fileprivate extension TabsController {
return return
} }
let fvcIndex = viewControllers.index(of: fvc)
let tvcIndex = viewControllers.index(of: viewController)
let tvc = viewController let tvc = viewController
tvc.beginAppearanceTransition(true, animated: true)
prepareViewController(at: tvcIndex!)
tvc.view.isHidden = false tvc.view.isHidden = false
tvc.view.frame = container.bounds tvc.view.frame = container.bounds
let fvcIndex = viewControllers.index(of: fvc)
let tvcIndex = viewControllers.index(of: viewController)
var isAuto = false var isAuto = false
switch tvc.motionModalTransitionType { switch tvc.motionModalTransitionType {
...@@ -229,6 +231,9 @@ fileprivate extension TabsController { ...@@ -229,6 +231,9 @@ fileprivate extension TabsController {
s.rootViewController = tvc s.rootViewController = tvc
s.view.isUserInteractionEnabled = true s.view.isUserInteractionEnabled = true
tvc.endAppearanceTransition()
s.removeViewController(viewController: fvc)
completion?(isFinished) completion?(isFinished)
...@@ -249,15 +254,6 @@ internal extension TabsController { ...@@ -249,15 +254,6 @@ internal extension TabsController {
fileprivate extension TabsController { fileprivate extension TabsController {
/// Prepares all the view controllers. /// Prepares all the view controllers.
func prepareViewControllers() { func prepareViewControllers() {
for i in 0..<viewControllers.count {
guard i != selectedIndex else {
continue
}
viewControllers[i].view.isHidden = true
prepareViewController(at: i)
}
prepareViewController(at: selectedIndex) prepareViewController(at: selectedIndex)
prepareRootViewController() prepareRootViewController()
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment