禁用导航栏按钮项目
将右侧导航栏按钮设置为禁用时,它不会更改其颜色以向用户发出禁用状态的信号。禁用导航栏按钮项目
它仍然“突出显示”,不变灰。
我在故事板设置按钮,如下所示:
self.navigationController.navigationItem.rightBarButtonItem.enabled = NO;
什么我需要做的改变button`s状态可视化呢?
谢谢!
您可以尝试手动更改色调颜色是这样的:
self.navigationItem.rightBarButtonItem.tintColor = [UIColor grayColor];
这是未经测试的代码,但它应该工作。另外,不要忘记在再次启用时将其改回。这个答案。
应该是'[UIColor grayColor]' –
感谢Vijay-Apple-Dev.blogspo为此答案。
self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;
这自动显示灰色的按钮,也禁用它们。
注意:在问题中的假设self.navigationController.navigationItem.rightBarButtonItem.enabled = NO; 作品似乎是错误的,在我的代码中试用后,我发现它没有任何效果。
再次感谢维杰指出,这可能是更好的使用:
self.navigationItem.hidesBackButton = YES;
由于苹果不喜欢禁用后退按钮。
就我个人而言,我将禁用右上角的按钮并隐藏后退按钮以阻止用户按下它们,然后在我选择时再次启用它们。
的链接问题是here
这个答案张贴的完整性,因此未来用户不需要继续搜索过去的这个网页。
尝试这样:
[[self.navigationItem.rightBarButtonItems objectAtIndex:0] setEnabled:NO];
相关答案都不能够产生我一直在寻找的结果 - 但我能够通过设置文本属性上我的导航按钮来解决这个问题:
[navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:enabledColor} forState:UIControlStateNormal];
[navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:disabledColor} forState:UIControlStateDisabled];
然后,我需要做的是以下内容,用户interactability和自动色彩的变化:
navButton.enabled = YES; // or NO
我喜欢这个,我在发布解决方案一个月后遇到了这个问题,我自己的解决方案回答了我的问题。 – Mike
更新到:
self.navigationItem.leftBarButtonItem?.isEnabled = true
是一个自定义按钮?启用设置为FALSE应该暗淡一个普通的UIBarButtonItem – ChrisH
@ChrisH,我已经更新了我的问题。 – AlexR
如果您以编程方式添加完成按钮,会发生什么情况? – ChrisH