iphone - 不应根据 ios 权限加载选项卡栏项目

标签 iphone ios uitabbarcontroller uitabbar

我正在尝试加载具有多个 View 的选项卡栏,但我希望仅在用户拥有权限时才打开几个选项卡。是否有任何委托(delegate)调用可以处理这个问题?我在 tabbardelegate 中查看,它只有 didSelectItem,与文本字段不同,文本字段有 bool 用于返回文本,所以我选择返回或不返回。

谢谢

最佳答案

您可以使用您讨论过的- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    if (item == 2 || item == 3) { //Tab 2 and 3 are protected
        if (!userHasPermission) {
            tabBar.selectedItem = 0; //Make user go to first tab if the user does not have permission.
        }
    }
}

或者如果您想禁用某些项目。在您的 -viewDidLoad

if (!userHasPermission) {
    UITabBarItem *tabBarItem = [[myTabBar items] objectAtIndex:2];
    [tabBarItem setEnabled:NO];
}

关于iphone - 不应根据 ios 权限加载选项卡栏项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12372480/

相关文章:

ios - iPhone - 检测触摸并取消触摸?

ios - UICollectionView 水平滚动不滚动到最后一项

ios - 在 TabBarController 中使用相同的 ViewController 和 TableView

iphone - 带有动画的 popToRootViewController 然后切换选项卡

iOS 14 已更改(或损坏?)SwiftUI GeometryReader

iphone - 推送 UIViewController 时如何更改 TabBarItens?

iphone - 正确使用MagicalRecord保存在BG中

ios - 如何使用 Google 离线访问 token 在 iOS 后台进行身份验证?

iphone - 将 UILabel 与另一个 UILabel 一起推送

ios - ARC 语义问题 - 没有可见的@interface