Si desea poder hacer esto programáticamente en swift 4 mientras permanece en la misma vista,
if change {
navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.backgroundColor = UIColor(displayP3Red: 255/255, green: 206/255, blue: 24/255, alpha: 1)
navigationController?.navigationBar.barTintColor = UIColor(displayP3Red: 255/255, green: 206/255, blue: 24/255, alpha: 1)
} else {
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.setBackgroundImage(backgroundImage, for: .default)
navigationController?.navigationBar.backgroundColor = .clear
navigationController?.navigationBar.barTintColor = .clear
}
Sin embargo, una cosa importante para recordar es hacer clic en este botón en su guión gráfico. Tuve un problema con una pantalla de salto durante mucho tiempo. Asegúrese de configurar esto:
Luego, cuando cambie la translucidez de la barra de navegación, no hará que las vistas salten ya que las vistas se extienden hasta la parte superior, independientemente de la visibilidad de la barra de navegación.