Как сделать несколько режимов в приложении?

swift3
ios

#1

В приложении 3 режима:

  1. Анонимный юзер
  2. Простой юзер
  3. Компания

RootVC это TabBar как в Instagram.
У анонимного и простого юзера 5 элементов TabBar.
У Компании 4 элементов TabBar.
Как мне не закрывая приложение переключаться между ними?
Приложение без сториборда. Все делаю в коде.


#2

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#3

Напишу тут подробнее может кому то поможет как я это сделал.

Приложение как я уже говорил основано на TabBarController

  1. Режимы надо разделить на свои классы у меня до этого было все в 1 классе. Я разделил их на 3 класса.

  2. Изначально задать 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
     }
    
  3. Потом меняю его где захочу с анимацией.

     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)