隐藏UIToolbar UIBarButtonItems

jmu*_*phy 14 iphone objective-c hide uitoolbar uibarbuttonitem

我有一个UIToolbar,我使用IB设置了三个按钮,左,中,右.在某些情况下,我不想显示中间按钮.有人知道如何隐藏UIToolBar内的特定按钮吗?没有隐藏属性,我只能找到setEnable,但这仍然留下按钮,让用户想知道它的目的是什么.我想只在它实际有用的情况下显示它.

提前致谢!

Chr*_*per 28

重置项目:

-(void)setItems:(NSArray *)items animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

您可以使用items属性获取当前项目,然后只删除您不想显示的项目并传入新项目NSArray.

如您所见,您还可以对其进行动画处理以使用户清楚.

  • 看起来太多工作只是隐藏一个按钮,但它的工作原理. (6认同)

Nic*_*kel 12

我没有猜测索引,而是为UIBarButtonItem添加了一个IBOutlet,然后按名称删除它:

NSMutableArray *toolBarButtons = [self._toolbar.items mutableCopy];
[toolBarButtons removeObject:self._selectButton]; // right button
[self._toolbar setItems:toolBarButtons];
Run Code Online (Sandbox Code Playgroud)

当然,它有助于连接设计师的插座:)


Moh*_*ani 6

这就是我这样做的方式......太头痛但是我能想到的最好:

NSArray *toolBarArray = toolBar.items;
NSMutableArray *newToolBarArray = [NSMutableArray arrayWithArray:toolBarArray];
[newToolBarArray removeObjectAtIndex:2];
[newToolBarArray removeObjectAtIndex:1];
//remove whatever buttons you want to.

NSArray *finalTabBarArray =[[NSArray alloc] initWithObjects:newToolBarArray, nil];
[toolBar setItems:[finalTabBarArray objectAtIndex:0] animated:NO];
Run Code Online (Sandbox Code Playgroud)