在我的应用程序中,我有多个视图控制器,大多数都有一个右侧UIBarButtonItem
,带有直接的"show"segue动作.
切换到另一个视图,然后按下'< Back'
按钮,原来的按钮项仍会淡出,尽管在其他方面仍然可用.
这似乎只有在iOS 11.2下才会发生.
我看不出有任何设置可以做到这一点,而且至少在其中一种情况下,没有特定的segue解卷或viewDidAppear
处理.我会发布一些代码,但AFAICS这都是默认的UINavigationBar
行为.
在我的应用程序中,我有多个视图控制器,大多数都有一个右侧UIBarButtonItem
,带有直接的"show"segue动作.
切换到另一个视图,然后按下'< Back'
按钮,原来的按钮项仍会淡出,尽管在其他方面仍然可用.
这似乎只有在iOS 11.2下才会发生.
我看不出有任何设置可以做到这一点,而且至少在其中一种情况下,没有特定的segue解卷或viewDidAppear
处理.我会发布一些代码,但AFAICS这都是默认的UINavigationBar
行为.
这是iOS 11.2中的一个漏洞,之所以会出现,是因为UIBarButtonItem
在导航后保持高亮显示,在另一个视图控制器弹出后不会恢复正常状态.
为了避免这种行为
使用UIBarButtonItem
和UIButton
作为自定义视图
禁用并重新启用viewWillDisappear(_:)
中的bar button项(尽管这会导致按钮立即出现,但使用matt's solution可避免此情况):
barButtonItem.isEnabled = false barButtonItem.isEnabled = true