在视图更改之前,UIBarButtonItem不会被禁用

时间:2012-12-08 00:26:53

标签: ios uibarbuttonitem uitoolbar

我有一个UINavigationController,正在使用我的一个视图控制器中的工具栏。我有几个UIBarButtonItems。在不同的点上,我使用_btnEdit.enabled = NO之类的东西禁用工具栏中的某些按钮。

这一切都很有效,除非有一次没有用户交互时会发生这种情况。在这种情况下,按钮似乎已启用(未显示为灰色),但不接受触摸。如果我用某种东西覆盖了条形图(从底部开始的动作单)或更改了设备的方向,它就会正确显示。

我已尝试过self.navigationController.toolbar setNeedsDisplay][self.navigationController.toolbar drawRect:self.navigationController.toolbar.bounds],但都没有任何效果。

有关如何“刷新”此视图的任何想法?我知道UIBarButtonItems不会继承UIView,我觉得这可能会导致这个问题。

1 个答案:

答案 0 :(得分:3)

这是预期的行为。 setNeedsDisplay是一个很好的反射尝试,但你不拥有导航栏和UIBarButtonItem doesn't inherit from UIView,所以我们需要对它们有所不同。
在这里您可以如何实现目标:

UIBarButtonItem *bbi = self.navigationItem.rightBarButtonItem;
bbi.enabled = NO;
[self.navigationItem setRightBarButtonItem:bbi animated:YES];

注意:selfUIViewController
我刚刚对此进行了快速测试,并且它正在运行。