1

我在这里找到了我认为可以完成这项工作的代码。

`/* suppose we have a UITabBar *myBar, and an int index idx */  
NSMutableArray modifyMe = [[myBar items] mutableCopy];  
[modifyMe removeObjectAtIndex:idx];  
NSArray *newItems = [[NSArray alloc] initWithArray:modifyMe];  
[myBar setItems:newItems animated:true];`

问题是,我应该在哪里编写这段代码才能工作?
我试着把它放进去,viewDidLoadUITabBarController没有用。

4

1 回答 1

2

如果您从 修改选项卡栏项目UITabbarController,则不能使用setItems:animated:. 从文档:

在 iOS 3.0 及更高版本中,当标签栏与标签栏控制器对象关联时,您不应尝试使用此类的方法和属性来修改标签栏。以这种方式修改标签栏会导致抛出异常。相反,对标签栏或其项目的任何修改都必须通过标签栏控制器界面进行。

相反,换掉你的viewControllers属性UITabbarController,删除与UIViewController你想要删除的标签栏项目相对应的属性。例如,如果要删除第二个标签栏项目:

NSMutableArray *newViewControllers = [NSMutableArray arrayWithArray:self.viewControllers];
[newViewControllers removeObjectAtIndex:1];
[self setViewControllers:newViewControllers];
于 2012-12-01T18:09:37.020 回答