遇到一个很纠结的问题。xib文件中拖拽了一个UINavigationBar,在其上放了一个UIBarButtonItem,现在想删除或者隐藏这个UIBarButtonItem。尝试了一些方法,但都不能达到效果。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICOwgjNyUjMyITOyQDMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
尝试方法一:
NSMutableArray *items = [[self.navBar subviews] mutableCopy];
if ([items containsObject:self.leftBtn]) {
[items removeObject:self.leftBtn];
}
[self.navBar setItems:items];
程序直接崩溃的。事实上程序根本没有进if判断。
尝试方法二:
NSMutableArray *items = [[self.navBar items] mutableCopy];
if ([items containsObject:self.leftBtn]) {
[items removeObject:self.leftBtn];
}
[self.navBar setItems:items];
没有任何效果。
尝试方法三:
查看文档,发现
@property(nonatomic) CGFloat width; // default is 0.0
尝试设置 self.leftBtn.width = 0.01;
没有效果。
尝试方法四:
[self.navBar popNavigationItemAnimated:YES];
这个比较彻底。UINavigationBar上的文本“help me!!"也直接没了。
尝试方法五: 将UINavigationBar换成UIToolbar,相应ib中的类也需要修改。
NSMutableArray *items = [[self.toolbar items] mutableCopy];
if ([items containsObject:self.leftBtn]) {
[items removeObject:self.leftBtn];
}
[self.toolbar setItems:items];
然后在toolbar上放置一个label,填上需要的文字即可。可以修饰以下文字来达到预期效果。