Iphone 不应基于权限ios加载tabbar项
我试图加载具有多视图的选项卡栏,但我希望只有在用户有权限的情况下才能打开几个选项卡。是否有任何代理调用可以处理此问题?我在tabbardelegate中查看,它只有didSelectItem,而textfield的返回文本有bool,所以我选择返回还是不返回 谢谢您可以使用您讨论过的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
-(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
如何获取所选项目的索引我仅获取视图控制器?我试着使用的是类,但它没有工作。有什么想法吗?