iPhone,如何隐藏选项卡栏按钮?

iPhone,如何隐藏选项卡栏按钮?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,如何隐藏单个选项卡栏按钮 我搜索了一下,什么也没找到,只有满满的酒吧 我已经取得了一些进展,但仍然存在一些问题,这段代码在我的应用程序代理中,有一个到选项卡栏的出口,我在选项卡栏中显示的第一个视图的viewDidLoad中调用它 -(void)hideTabButton { NSMutableArray *aItems = [[rootTabBar items] mutableCopy]; for (UITabBarItem *tabButton in aItems) { if ([

如何隐藏单个选项卡栏按钮

我搜索了一下,什么也没找到,只有满满的酒吧

我已经取得了一些进展,但仍然存在一些问题,这段代码在我的应用程序代理中,有一个到选项卡栏的出口,我在选项卡栏中显示的第一个视图的
viewDidLoad
中调用它

-(void)hideTabButton {  
NSMutableArray *aItems = [[rootTabBar items] mutableCopy];
for (UITabBarItem *tabButton in aItems) {
    if ([tabButton.title isEqualToString:@"First"]) {           
        [aItems removeObject:tabButton];
        break;
    }
}
[rootTabBar setItems:aItems animated:YES];
[aItems release];   
}
但这给了我一个错误,它似乎是可能的,否则为什么有
setItems

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Directly modifying a tab bar managed by a tab bar controller is 
not allowed.'
Call stack at first throw:
这是我的全部密码,我想我很接近了。

您需要使用
setItems:animated:
来执行此操作。在UITabBar上创建要保留的按钮数组,并将其传递给此实例方法:

[myTabBar setItems:itemsToKeep animated:TRUE];

参考:

您需要使用
setItems:animated:
来执行此操作。在UITabBar上创建要保留的按钮数组,并将其传递给此实例方法:

[myTabBar setItems:itemsToKeep animated:TRUE];
参考资料:

在一个旧线程中,我发现一个警告,建议直接使用tabbar的出口。我以前遇到过这个问题,但出现了错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“不允许直接修改由选项卡栏控制器管理的选项卡栏。”

但此错误仅出现在iOS 3.1.x设备上,而不出现在iOS 4.x设备上

为了找到一种在3.1.x旧设备上运行我的程序的方法,我首先删除了插座和对它的所有引用,即使是在IB中

因为我需要禁用一些选项卡,所以我没有找到其他方法。所以我重新安装了插座和所有对它的引用。现在它与以前的代码相同,并且可以正常工作

因此,也值得一试。

在一个旧线程中,我发现了一个警告,建议直接使用tabbar的出口。我以前遇到过这个问题,但出现了错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“不允许直接修改由选项卡栏控制器管理的选项卡栏。”

但此错误仅出现在iOS 3.1.x设备上,而不出现在iOS 4.x设备上

为了找到一种在3.1.x旧设备上运行我的程序的方法,我首先删除了插座和对它的所有引用,即使是在IB中

因为我需要禁用一些选项卡,所以我没有找到其他方法。所以我重新安装了插座和所有对它的引用。现在它与以前的代码相同,并且可以正常工作


因此,也值得一试。

我可以从IB中创建的按钮将项目加载到数组中吗?可以,使用
myTabBar.items
创建一个NSMutableArray。使用数组上的
removeObject:
方法按名称删除特定按钮。确保要删除的按钮已连接到代码。是要删除与按钮关联的视图,还是只想隐藏一个按钮?这是绝对可能的,否则将不会有
setItems
方法。在选项卡栏控制器类中创建一个执行按钮隐藏的方法(上面的代码)。在上面的位置调用该方法。问题已解决-直接创建到UITabBar的出口。然后使用
[myTabBar setItems…]
而不是
[tabBar Controller.tabBar setItems…]
。是否可以从IB中创建的按钮将项目加载到数组中?是的,使用
myTabBar.items
创建NSMutableArray。使用数组上的
removeObject:
方法按名称删除特定按钮。确保要删除的按钮已连接到代码。是要删除与按钮关联的视图,还是只想隐藏一个按钮?这是绝对可能的,否则将不会有
setItems
方法。在选项卡栏控制器类中创建一个执行按钮隐藏的方法(上面的代码)。在上面的位置调用该方法。问题已解决-直接创建到UITabBar的出口。然后使用
[myTabBar setItems…]
而不是
[tabBar Controller.tabBar setItems…]