带有 Storyboard的 iOS 动态选项卡

标签 ios swift uitabbarcontroller

我有一个主 Storyboard,它由一个 UITabBarController 组成,每个 UITabBarItem 只是将您带到另一个 Storyboard。我的问题是并非所有选项卡都应始终显示。有 2 到 5 个选项卡,选项卡的组合可以根据用户的不同而完全不同。

如何有条件地隐藏选项卡? 这看起来应该非常简单,但我还没有找到解决这个问题的通用方法。

最佳答案

我最终做了类似下面的事情:

let user = User.sharedInstance

if let vcs = self.viewControllers {
    var newVcs = [UIViewController]()

    for vc in vcs {
        if let title = vc.title {
            switch title {
            case "Feature1":
                if user.isFeature1Enabled() {
                    newVcs.append(vc)
                }
            case "Feature2":
                if user.isFeature2Enabled() {
                    newVcs.append(vc)
                }
            default:
                break
            }
        }
}

self.setViewControllers(newVcs, animated: false)

我觉得应该有更好的方法。我期待做一些类似 something.hide() 的事情,但这行得通。

关于带有 Storyboard的 iOS 动态选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49374541/

相关文章:

ios - UITabbarController 设置初始 View

ios - 你能继承 UITabBarItem 并用 xib 文件设置它吗?

ios - cocoapod 错误 tar : Unrecognized archive format

ios - UItableView 中的 UICollectionView 只获取空的 tableview,我错过了什么?

ios - 从 HTML 字符串 wkwebview 加载脚本

ios - 裁缝强制转换冲突

ios - 将 ViewController 推到 TabBarController 之上

ios - 配置配置文件可以持续多长时间进行测试?

ios - 如果我的应用程序在整个运行时都使用它,它应该如何处理当前日期?

json - 更改其中包含链接的字符串