Restaurar la apariencia de la barra de navegación predeterminada

Estoy haciendo una aplicación de iOS para iPhone y estoy usando un controlador de navegación. En algún momento durante la navegación, estoy agregando unUISegmentedControl a un controlador de vista, justo debajo de la barra de navegación desde el controlador de navegación. Estoy insertando nuevas imágenes de fondo y sombras en la barra de navegación, para que elUISegmentedControl aparecer como parte de la barra de navegación. Lo hago así:

    // nav bar color image
    let rect = CGRectMake(0, 0, view.frame.width, 0.5)          // Used in navBar, size dosn't matter
    UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
    barBackgroundColor.setFill()
    UIRectFill(rect)
    let navBarBackground = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    // setup navbar
    navigationController!.navigationBar.setBackgroundImage(navBarBackground, forBarMetrics: .Default)
    navigationController!.navigationBar.shadowImage = UIImage()
    navigationController!.navigationBar.tintColor = UIColor.blackColor()
    navigationController!.navigationBar.translucent = false

Cuando navego fuera de ese controlador de vista dado, el fondo de las barras de navegación todavía cambia.

¿Cómo puedo restaurar la apariencia de las barras de navegación?

O...

¿Hay otra forma de incrustar elUISegmentedControl en una barra de navegación expandida?

Imagen de la barra de navegación con fondo personalizado y control segmentado a continuación:

Al navegar hacia atrás, la barra de navegación sigue siendo personalizada:

EDITAR:

En un controlador de vista antes de cambiar las imágenes de fondo, trato de proteger la imagen estándar:

override func viewDidAppear(animated: Bool) {

    if sharedVariables.standartNavBarBackgroundImage == nil {
        let herp = navigationController!.navigationBar.backgroundImageForBarMetrics(.Default)
        sharedVariables.standartNavBarBackgroundImage = herp
        let derp = navigationController!.navigationBar.shadowImage
        sharedVariables.standartNavBarShadowImage = derp
    }
}

Ambosherp yderp sonnil después de configurarlo, la barra de navegación está visible en esta ventana. ¿Cómo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta