Se você deseja fazer isso programaticamente no swift 4 enquanto permanece na mesma exibição,
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
}
Uma coisa importante a lembrar é clicar neste botão no seu storyboard. Eu tive um problema com uma tela de salto por um longo tempo. Certifique-se de definir isso:
Então, quando você altera a translucidez da barra de navegação, as exibições não saltam, pois elas se estendem até o topo, independentemente da visibilidade da barra de navegação.