Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 不应基于权限ios加载tabbar项_Iphone_Ios_Uitabbarcontroller_Uitabbar - Fatal编程技术网

Iphone 不应基于权限ios加载tabbar项

Iphone 不应基于权限ios加载tabbar项,iphone,ios,uitabbarcontroller,uitabbar,Iphone,Ios,Uitabbarcontroller,Uitabbar,我试图加载具有多视图的选项卡栏,但我希望只有在用户有权限的情况下才能打开几个选项卡。是否有任何代理调用可以处理此问题?我在tabbardelegate中查看,它只有didSelectItem,而textfield的返回文本有bool,所以我选择返回还是不返回 谢谢您可以使用您讨论过的-(void)选项卡栏:(UITabBar*)选项卡栏didSelectItem:(UITabBarItem*)项 - (void)tabBar:(UITabBar *)tabBar didSelectItem:(U

我试图加载具有多视图的选项卡栏,但我希望只有在用户有权限的情况下才能打开几个选项卡。是否有任何代理调用可以处理此问题?我在tabbardelegate中查看,它只有didSelectItem,而textfield的返回文本有bool,所以我选择返回还是不返回

谢谢

您可以使用您讨论过的
-(void)选项卡栏:(UITabBar*)选项卡栏didSelectItem:(UITabBarItem*)项

- (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];
}

这是唯一的解决办法吗?因为在我的情况下,我必须记住上一个标签。你可以禁用你不想点击的项目。答案经过编辑。这听起来是个不错的解决方案。谢谢最后一个问题,我使用的是tabbar控制器,而不是tabbar。我在tabbarcontroller委托中找不到didSelectItem调用。因此,我将tabbarCOntroller.tabbar.delegate=self,因为未捕获异常“NSInternalInconsistencyException”,我在终止应用程序时遇到此错误,原因是:“不允许更改由选项卡栏控制器管理的选项卡栏的委托。”。然后,您希望我是TabBar控制器的委托,而不是TabBar的委托。然后您可以访问
-(BOOL)tabbar控制器:(uitabbar控制器*)tabbar控制器应选择viewController:(UIViewController*)viewController
如何获取所选项目的索引我仅获取视图控制器?我试着使用的是类,但它没有工作。有什么想法吗?