如何在导航栏上隐藏UIbarbutton

3

你好,我创建了一个栏按钮,当文本视图开始编辑时显示“完成”。实际上,我需要的是当我按下完成按钮时,文本视图的可编辑属性将变为false,并且完成按钮会隐藏。

我已经完成了第一部分,但如何隐藏栏按钮呢?

请帮忙解决。

4个回答

5

@christo16的解决方案对我来说不太适用,但它引导我找到了这个可行的解决方案:

[self.navigationItem.rightBarButtonItem setEnabled:NO];

3
您可以将其禁用(它会变暗):
//assuming it's the right one
[[[myNavigationBar topItem]rightBarButtonItem]setEnabled: NO];

我认为要隐藏它,实际上你需要将其设置为nil。然后在需要时重新创建它。

[[myNavigationBar topItem]setRightBarButtonItem:nil animated:NO];

我认为你的答案更好;如果它是一个预定义的系统按钮,那么它们只是作为常量漂浮在周围。 - saramah

1
如果只是一个UIButton,我会建议你这样做:
myButton.hidden = YES;

但如果它是UIBarButtonItem,您可以尝试这里的解决方案。如果可以,请告诉我们!

0

启用/禁用它不会像isHidden一样实现相同的效果,因为它仍然可见(只是稍微暗淡)。如果将工具栏按钮项设置为nil,则无法轻松地将其切换回来。

相反,您可以使用色调颜色来切换可见性...这里是一个Swift实现。

切换关闭(模拟isHidden true):

        self.navigationItem.rightBarButtonItem.tintColor = UIColor.clear
        self.navigationItem.rightBarButtonItem.isEnabled = false

而回到(模拟 isHidden 为 false):

        self.navigationItem.rightBarButtonItem.tintColor = UIColor.white // or nil
        self.navigationItem.rightBarButtonItem.isEnabled = true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接