我有一个主 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/