ios - 控制 UITabBar 项目

标签 ios swift uitabbarcontroller uitabbaritem

我有一个 UITabBarController,我有 3 个 View Controller ,用于 3 个标签栏项目,使用关系 segues 连接。

但我想根据用户类型显示 2 或 3 个标签栏项目。例如,对于用户 A 只显示 2 个 UITabBarItem,对于另一个用户 B 显示所有 3 个 UITabBarItem

我怎样才能做到这一点?

最佳答案

在您的自定义选项卡栏实现中尝试以下方法(您必须将其设置为 Storyboard 中的选项卡栏 Controller 的类):

class CustomTabBarController: UITabBarController {

    override func awakeFromNib() {
        super.awakeFromNib()

        // I have no idea how you determine your user type, so fix it according to yourself
        if user.type = "A" {
            self.viewControllers = [storyboard!.instantiateViewController(withIdentifier: "ViewController1"),
                                    storyboard!.instantiateViewController(withIdentifier: "ViewController2")]
        } else {
            self.viewControllers = [storyboard!.instantiateViewController(withIdentifier: "ViewController1"),
                                    storyboard!.instantiateViewController(withIdentifier: "ViewController2"),
                                    storyboard!.instantiateViewController(withIdentifier: "ViewController3")]
        }
    }
}

关于ios - 控制 UITabBar 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642549/

相关文章:

iOS多步表单

ios - 更改选择时的默认行背景颜色

ios - 在 Swift 4 上解码 JSON 数据返回 nil

objective-c - NSURL 对象不是 Objective-C 对象

ios - 这个 Rx 代码是否订阅了 JSON 本身的变化?

iphone - 每次单击选项卡栏项目时如何刷新 View ?

ios - 标签栏未出现在 applicationDidBecomeActive 上

ios - 将另一个 View Controller 加载到 UItabbarcontroller

iPhone UI 设计方法 - 使用 Excel 过滤

Swift SKEmitter 节点 - BSXPCMessage 收到消息 : Connection interrupted 的错误