遇到一個很糾結的問題。xib檔案中拖拽了一個UINavigationBar,在其上放了一個UIBarButtonItem,現在想删除或者隐藏這個UIBarButtonItem。嘗試了一些方法,但都不能達到效果。
嘗試方法一:
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,填上需要的文字即可。可以修飾以下文字來達到預期效果。