iOS: 在 UITabbarController 中显示登录 viewcontroller 或 "another" viewcontroller?

iOS: Show login viewcontroller or "another" viewcontroller inside of UITabbarController?

我有一个包含 5 个标签的标签栏。
其中 3 个选项卡需要通过帐户进行身份验证。 我知道一种解决方案是在按下其中一个选项卡时显示模态 viewcontroller。

我希望在选项卡内显示登录 viewcontroller 而不是模态显示。如何做到这一点以及如何在用户登录后 "reload" 标签栏与其他 viewcontroller 一起?

我会通过创建一个 UINavigationController 的子类来做到这一点,它接收一个 UIViewController 来显示用户是否登录,并在其他情况下显示登录页面。

class CustomNavController:UINavigationViewController {
  let loggedInViewController:UIViewController
  init(loggedInVC:UIViewController) {
    loggedInViewController = loggedInVC
    if (userLoggedIn) {
      onLogin()
    } else {
      onLogout()
    }
    //setup listeners for authentication
    super.init()
  }
  onLogout () {
    self.viewControllers = [AuthenticationVC()]
  }
  onLogin () {
    self.viewControllers = [loggedInViewController]
  }
}


//code for setting up your UITabBarViewController
class MyTabbar:UITabBarViewController {
  init() {
    viewControllers = [
      FirstVC(), 
      SecondVC(),
      CustomNavController(ThirdVC()), 
      CustomNavController(ForthVC()), 
      CustomNavController(FifthVC())
    ]
  }
}