In my app I have multiple view controllers, and most have a right-hand-side
UIBarButtonItem with direct “show” segue actions attached.
Having segued to another view and then pressed the
'< Back' button, the original button item remains faded out, although still otherwise usable.
This only appears to happen under iOS 11.2.
I can’t see any setting that could be doing this, and in at least one of the cases where this happens there’s no specific segue unwinding nor
viewDidAppear handling. I’d post some code, but AFAICS it’s all just default
This is a bug in iOS 11.2 and happens because the
UIBarButtonItem stays highlighted after navigation and does not return to its normal state after the other view controller pops.
To avoid this behavior, either
UIButtonas a custom view
disable and re-enable the bar button item in
viewWillDisappear(_:)(although this causes the button to appear immediately, use matt’s solution to avoid this):
barButtonItem.isEnabled = false
barButtonItem.isEnabled = true