【问题标题】:How to allow a Tab Bar Item to have multiple view controllers如何允许标签栏项具有多个视图控制器
【发布时间】:2017-01-26 23:13:26
【问题描述】:

我已经被这个问题困扰了几天了,我们将不胜感激。

我有一个UITabBarController,它有四个TabBarItems。

我想根据用户是否登录来确定向用户显示什么视图控制器。

例如,当用户未登录时,我想根据选择的TabBarItem 显示不同的登录屏幕 - 每个登录看起来都不同。当用户登录时,我想显示所选TabBarItem的正常内容

我正在考虑为每个标签栏项目设置多个 ViewControllers。当用户选择TabBarItem时,判断用户是否登录,然后显示正确的```ViewController.我不确定这是否是正确的方法以及如何实现这种行为。

更新: 这是我想出的解决方案,但想知道每个人的想法 - 这是否是正确的方法。 这就是我的故事板的样子:

这个想法是,当用户登录时,我会显示登录视图控制器,当用户未登录时,我会显示已注销的视图控制器。

我将使用self.present(...) 更改登录和注销ViewControllers。

【问题讨论】:

  • 能否请添加您当前的代码

标签: ios swift uiviewcontroller uitabbarcontroller uitabbar


【解决方案1】:

您可以使用setViewControllers 更改显示的标签。只需在用户登录或注销时设置所需的 viewController 数组即可。

class TabBarController: UITabBarController {
    func onMyLogin() {
        setViewControllers(myNormalViewControllers, animated: false)
    }
    func onMyLogout() {
        setViewControllers(myUnidentifiedViewControllers, animated: false)
    }
}

【讨论】:

  • 感谢您的建议。我今天会试试看。我还用我想到的可能解决方案更新了我的问题。很想知道你的想法是什么
  • @breaktop 您的解决方案也有效。您希望如何为两种状态之间的过渡设置动画是一个品味问题。在目前的情况下,我更喜欢使用原生 animated: true 的单个 TabBarController 的解决方案。
  • 你能在客观c中给出答案吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多