Standarddarstellung der Navigationsleiste wiederherstellen

Ich erstelle eine iOS-App für das iPhone und verwende einen Navigationscontroller. Irgendwann während der Navigation füge ich ein @ hinUISegmentedControl zu einem Ansichts-Controller direkt unter der Navigationsleiste des Navigations-Controllers. Ich füge neue Hintergrund- und Schattenbilder in die Navigationsleiste ein, um dasUISegmentedControl wird als Teil der Navigationsleiste angezeigt. So mach ich es

    // 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

Wenn ich mich von diesem bestimmten Ansichts-Controller entferne, wird der Hintergrund der Navigationsleiste immer noch geändert.

Wie kann ich das Erscheinungsbild der Navigationsleisten wiederherstellen?

Oder..

Gibt es eine andere Möglichkeit, das @ einzubetteUISegmentedControl in eine erweiterte Navigationsleiste?

Bild der Navigationsleiste mit benutzerdefiniertem Hintergrund und segmentierter Steuerung unten:

Beim Zurücknavigieren ist die Navigationsleiste weiterhin benutzerdefiniert:

BEARBEITEN

Bevor ich die Hintergrundbilder ändere, versuche ich in einem Ansichtscontroller, das Standardbild zu sichern:

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
    }
}

Beideherp undderp sindnil Nach dem Einstellen ist die Navigationsleiste in diesem Moment sichtbar. Woher

Antworten auf die Frage(4)

Ihre Antwort auf die Frage