OK. I've been able to get an opaque background by setting navigationBar.scrollEdgeAppearance to standardAppearance.
Nevertheless I still can't understand why some navigation items default to opaque and other transparent.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags: