【问题标题】:Disabling a Navigation Bar Button Item禁用导航栏按钮项
【发布时间】:2013-06-25 14:37:45
【问题描述】:

将右侧导航栏按钮设置为禁用时,它不会更改其颜色以向用户表明其禁用状态。

它保持“突出显示”,非灰色。

我在 Storyboard 中的按钮设置如下:

self.navigationController.navigationItem.rightBarButtonItem.enabled = NO;

我还需要做什么才能在视觉上更改按钮的状态?

谢谢!

【问题讨论】:

  • 是自定义按钮吗?启用设置为 FALSE 应该使常规 UIBarButtonItem 变暗
  • @ChrisH,我已经更新了我的问题。
  • 如果您以编程方式添加“完成”按钮会发生什么?
  • 我不能,因为我根据 Storyboard 中的按钮硬编码了一个 segue。

标签: ios objective-c uinavigationcontroller uikit uibarbuttonitem


【解决方案1】:

感谢 Vijay-Apple-Dev.blogspo 这个答案。

self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;

这似乎会自动使按钮变灰并禁用它们。

注意:问题中的假设 self.navigationController.navigationItem.rightBarButtonItem.enabled = NO; 作品似乎是错误的,在我的代码中试用后发现它没有效果。

再次感谢 Vijay 指出使用它可能会更好:

self.navigationItem.hidesBackButton = YES;

因为 Apple 不喜欢禁用后退按钮。

我个人将禁用右上角按钮并隐藏后退按钮以阻止用户按下它们,然后在我选择时再次启用它们。

问题的链接是here

发布此答案是为了完整性,因此未来的用户无需继续搜索此页面。

【讨论】:

    【解决方案2】:

    没有一个相关的答案能够产生我正在寻找的结果 - 但我能够通过在我的导航按钮上设置文本属性来解决这个问题:

    [navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:enabledColor} forState:UIControlStateNormal];
    [navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:disabledColor} forState:UIControlStateDisabled];
    

    然后,我需要做的就是以下操作,用户交互性和颜色会自动更改:

    navButton.enabled = YES; // or NO
    

    【讨论】:

    • 我喜欢在发布解决方案一个月后遇到这个问题,而我自己的解决方案回答了我的问题。
    【解决方案3】:

    试试这样的:

    [[self.navigationItem.rightBarButtonItems objectAtIndex:0] setEnabled:NO];
    

    【讨论】:

      【解决方案4】:

      更新为:

      self.navigationItem.leftBarButtonItem?.isEnabled = true
      

      【讨论】:

        【解决方案5】:

        您可以尝试像这样手动更改色调颜色:

            self.navigationItem.rightBarButtonItem.tintColor = [UIColor grayColor];
        

        这是未经测试的代码,但它应该可以工作。另外,再次启用时不要忘记将其更改回来。

        【讨论】:

        • 应该是[UIColor grayColor]
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-16
        • 2023-04-01
        • 1970-01-01
        • 2014-10-11
        • 1970-01-01
        • 1970-01-01
        • 2016-06-26
        相关资源
        最近更新 更多