我添加了一个BarButton
项目到左边nav.bar
通过界面生成器和我想这只是在我的表视图的编辑模式下显示的代码。 但我没有发现任何隐藏的属性设置leftBarButtonItem
(如: self.navigationItem.leftBarButtonItem.hidden = YES
)。
我只能设置enabled
属性。 任何人都知道如何控制隐藏和显示该物业leftBarButtonItem
,请帮助。
我添加了一个BarButton
项目到左边nav.bar
通过界面生成器和我想这只是在我的表视图的编辑模式下显示的代码。 但我没有发现任何隐藏的属性设置leftBarButtonItem
(如: self.navigationItem.leftBarButtonItem.hidden = YES
)。
我只能设置enabled
属性。 任何人都知道如何控制隐藏和显示该物业leftBarButtonItem
,请帮助。
这工作我没有尝试过自己
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = YES;
我敢肯定,“隐藏”它是零它是唯一的出路。
self.navigationItem.leftBarButtonItem = nil;
虽然它不是一个完美的回答你的问题,因为这基本上摆脱你的按钮,而不是隐藏它。 你要么必须重新创建或保留原来的按钮四周,只需将leftBarButtonItem回到你的UIBarButtonItem。
我有一个简单的功能,使这个。 我有这样的导航。 它有形成界面生成器,它有一个背景图像。
@IBOutlet weak var memberBtn: UIBarButtonItem!
你可以隐藏/显示用它:
func hideMemberBtn() {
memberBtn.isEnabled = false
memberBtn.tintColor = UIColor.clear
}
func showMemberBtn() {
memberBtn.isEnabled = true
memberBtn.tintColor = UIColor.white
}
这很容易,但它为我工作。 如您需要,您可以更改tintColor。 希望帮助:]
您可以使用
// Hide
self.navigationItem.leftBarButtonItem = nil;
// Show
self.navigationItem.leftBarButtonItem = self.myBarButtonItem
关键是要确保你有nilling之前的强引用按钮项leftBarButtonItem
。
@property (strong, nonatomic) IBOutlet UIBarButtonItem *myBarButtonItem;
我刚刚创建低于我自己的“隐藏”功能显示:
- (void)hideClearButton:(BOOL)hide {
if (hide) {
self.navigationItem.leftBarButtonItem = nil;
}
else {
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:NSLocalizedString(@"Clear", @"Recents")
style:UIBarButtonItemStylePlain
target:self action:@selector(clearAll:)];
}
}
你可以这样调用它:
[self hideClearButton:YES]; //hide it
要么
[self hideClearButton:NO]; //show it
没有什么文档中建议物品栏有一个隐藏属性。
为什么不设置
self.navigationItem.leftBarButtonItem = nil;
当用户没有编辑,然后设置
self.navigationItem.leftBarButtonItem = whateverBarButtonItem;
当用户正在编辑? 这要求重新创建按钮每次或将其存储为视图的生命周期的持续时间。 无论是极其痛苦的,但没有,几乎没有一个.hidden属性容易。
您可以使用
[self.navigationItem.leftBarButtonItem setEnabled:TRUE];
因为没有其他的方式来隐藏它。 所以只是将其禁用。
要隐藏/禁用
[self.navigationItem.leftBarButtonItem setEnabled:FALSE];
要显示/启用
[self.navigationItem.leftBarButtonItem setEnabled:TRUE];
那么使得它无不是一个选项,因为我想再次显示它并没有想再次创建一个按钮。
所以我所做的就是
UIBarButtonItem *barButton = (UIBarButtonItem *)self.navBar.topItem.leftBarButtonItem;
barButton.customView.hidden = true;//Hide
barButton.customView.hidden = false;//Show
我的作品。 (我leftBarButtonItem使用customView创建)
希望能帮助到你。
这对我工作的解决方案
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;