一尘不染

回退后,iOS UINavigationBar按钮仍然褪色

swift

在我的应用程序中,我有多个视图控制器,并且大多数都在右侧UIBarButtonItem附加了直接的“显示” segue操作。

锁定到另一个视图然后按下'< Back'按钮后,原始按钮项仍然淡出,尽管仍然可以使用。

这似乎仅在iOS 11.2下发生。

我看不到有任何设置可以做到这一点,并且至少在发生这种情况的一种情况下,没有特定的序列展开或viewDidAppear处理。我会发布一些代码,但AFAICS只是默认UINavigationBar行为。


阅读 222

收藏
2020-07-07

共1个答案

一尘不染

这是iOS 11.2中的一个错误,发生的原因是UIBarButtonItem导航后保持高亮显示,而另一个视图控制器弹出后未恢复到正常状态。

为了避免这种行为,要么

  1. 使用UIBarButtonItem具有UIButton作为一个自定义视图

  2. 禁用并重新启用其中的条形按钮项viewWillDisappear(_:)

    barButtonItem.isEnabled =否
    

    barButtonItem.isEnabled = true

2020-07-07