我有一个UINavigationController,正在使用我的一个视图控制器中的工具栏。我有几个UIBarButtonItems。在不同的点上,我使用_btnEdit.enabled = NO
之类的东西禁用工具栏中的某些按钮。
这一切都很有效,除非有一次没有用户交互时会发生这种情况。在这种情况下,按钮似乎已启用(未显示为灰色),但不接受触摸。如果我用某种东西覆盖了条形图(从底部开始的动作单)或更改了设备的方向,它就会正确显示。
我已尝试过self.navigationController.toolbar setNeedsDisplay]
和[self.navigationController.toolbar drawRect:self.navigationController.toolbar.bounds]
,但都没有任何效果。
有关如何“刷新”此视图的任何想法?我知道UIBarButtonItems不会继承UIView,我觉得这可能会导致这个问题。
答案 0 :(得分:3)
这是预期的行为。 setNeedsDisplay是一个很好的反射尝试,但你不拥有导航栏和UIBarButtonItem doesn't inherit from UIView
,所以我们需要对它们有所不同。
在这里您可以如何实现目标:
UIBarButtonItem *bbi = self.navigationItem.rightBarButtonItem;
bbi.enabled = NO;
[self.navigationItem setRightBarButtonItem:bbi animated:YES];
注意:self
是UIViewController
我刚刚对此进行了快速测试,并且它正在运行。