【问题标题】:Hide an item in the tabBar?在 tabBar 中隐藏一个项目?
【发布时间】:2014-01-14 05:29:39
【问题描述】:

我目前有许多 viewControllers 通过 Storyboard 与我的 tabBarController 有关系。给定某些设置,我想以编程方式使某个 viewController 隐藏或可见。我可以隐藏整个 tabBar,但这不是我想要的。我一直在玩 Xcode 并搜索互联网,但找不到解决方案。以下内容对我不起作用!

[[self.tabBarController.tabBar.items objectAtIndex:2] setHidden:YES];

【问题讨论】:

    标签: uitabbarcontroller


    【解决方案1】:

    使用类似的代码来解决问题。

    NSMutableArray *newTabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];
    [newTabs removeObjectAtIndex: 3];
    [newTabs removeObjectAtIndex: 2];
    [self.tabBarController setViewControllers:newTabs];
    

    【讨论】:

    • 嗨,如何以编程方式添加此标签栏项目
    【解决方案2】:

    事实证明你可以在一行中完成:

    tabBarController?.viewControllers?.remove(at: 1)
    

    假设1 是您要删除的项目的索引。

    【讨论】:

    • 不幸的是,这会改变其他选项卡的索引,从而破坏功能。能够隐藏一个选项卡真是太好了。
    【解决方案3】:

    要更改UITabBar,请将其items 属性设置为新的

    UITabBar *tabBar = self.tabBarController.tabBar;
    NSMutableArray *newTabs = [NSMutableArray arrayWithArray:tabBar.items];
    [newTabs removeObjectAtIndex: 2];
    tabBar.items = newTabs;
    

    【讨论】:

    • 不起作用:'NSInternalInconsistencyException',原因:'不允许直接修改由标签栏控制器管理的标签栏。'
    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 2018-06-05
    • 2012-02-26
    • 2021-06-04
    • 1970-01-01
    • 2011-08-17
    • 2019-11-06
    • 1970-01-01
    相关资源
    最近更新 更多