2017-03-13 25 views
1

Ich habe eine grundlegende Navigation in meinem Storyboard einrichten: eine Vanille UIViewController eingebettet in einem UINavigationController. In meinem Haupt-VC habe ich zwei Tasten, die jeweils zu einer UIViewController Unterklasse: LabelledVC. In der viewDidAppear(_:) Methode der Unterklasse stelle ich den titleView Navigationspunkt zu einem benutzerdefinierten Bild:viewDidAppear() aufgerufen, bevor View-Controller auf Navigationsstack geschoben wird

class LabelledVC: UIViewController { 

    override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    let logoImage = UIImage(named: "apple") 
    let logo = UIImageView(image: logoImage) 

    logo.contentMode = .scaleAspectFit 
    logo.frame = CGRect(x: 0, y: 0, width: 32, height: 32) 

    navigationItem.titleView = logo 
    } 

} 

Aus irgendeinem Grunde LabelledVC ‚s viewDidAppear(_:) Methode aufgerufen wird, wenn die App Lasten (vor es auf den Navigationsstapel geschoben wird) was für mich keinen Sinn ergibt. Sie können das Projekt here finden.

enter image description here

+2

In Ihrem Projekt ist Ihr ** Viewcontroller ** von LabelledVC unterklassifiziert. –

Antwort

2

Ihre MainVC von LabelledVC erben. Also, wenn Anwendung zeigte diesen Controller das System ruft viewDidAppear in ViewController, aber Sie haben keine Implementierung für diese Methode, so dass System diese Methode von der Elternklasse aufrufen.

enter image description here

Eine andere Sache. Für Ihr Beispiel am besten zu konfigurieren NavigationItem ist viewDidLoad Methode.

+0

Seufz ... Ich kann nicht glauben, dass ich das verpasst habe. :-(Vielen Dank. – RobertJoseph

Verwandte Themen