Напишу тут подробнее может кому то поможет как я это сделал.
Приложение как я уже говорил основано на TabBarController
-
Режимы надо разделить на свои классы у меня до этого было все в 1 классе. Я разделил их на 3 класса.
-
Изначально задать root класс в AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
UINavigationBar.appearance().barTintColor = .white
window?.rootViewController = AnonymUserTabBarController()
return true
}
-
Потом меняю его где захочу с анимацией.
guard let window = UIApplication.shared.keyWindow else {
return
}
guard let rootViewController = window.rootViewController else {
return
}
let viewController = CompanyTabBarController()
viewController.view.frame = rootViewController.view.frame
viewController.view.layoutIfNeeded()
UIView.transition(with: window, duration: 0.6, options: .transitionFlipFromLeft, animations: {
window.rootViewController = viewController
}, completion: nil)