2017-03-17 2 views
0

Guten Tag. Ich bin mir nicht sicher, was ich hier falsch mache, aber ich versuche, mein Bild in viewWillAppear zu färben und dann, wenn ich auf eine Schaltfläche klicke, übergebe es zum nächsten Controller. Aber wenn ich koloriere, ändert es sich, aber wenn ich meinen Knopf tippe, um zu segeln, bricht es. Hier ist mein Code:Bild in Swift färben: Schwerwiegender Fehler: Unerwartetes gefunden Null beim Auspacken ein Optionaler Wert

@IBOutlet weak var welcomeLabel: UILabel! 
@IBOutlet weak var logoImageView: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

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

    self.navigationController?.setNavigationBarHidden(true, animated: true) 

    let logo = UIImage(named: "UnifiedLogo.png") 

    if let imageForLogo = logo{ 
     let templateImage = imageForLogo.withRenderingMode(UIImageRenderingMode.alwaysTemplate) 
     print(templateImage) 
     logoImageView.image = templateImage 
     logoImageView.tintColor = UIColor.white 
    } 
} 

und die Bruchlinie ist im unteren Bild gezeigt.

breaking point with error message

debug screen

ich überprüft haben, dass Steckdosen verbunden sind, und sie sind alle.

Jede Hilfe wird geschätzt.

+0

prüfen Ausgang 'logoImageView' richtig mit Viewcontroller verbunden ist? –

+0

@NiravD Ja, es ist – devSA

Antwort

0

Der Code funktioniert gut Eine Sache, die Sie überprüfen müssen, ist, ob der Ausgang von imageview richtig angeschlossen ist oder nicht.

+0

Ich habe das schon gemacht, bevor ich die Frage gepostet habe, aber nichts, ich habe meine Steckdosen überprüft sie sind verbunden/ – devSA

+0

Haben Sie versucht, diesen Code in ViewDidLoad? Versuchen Sie es dort.Sollte funktionieren. –

0

Wenn Sie bei Apple documentation aussehen, ist die Aussicht noch nicht in der Ansicht Hierarchie hinzugefügt, wenn viewWillAppear genannt wird:

view​Will​Appear(_:​)

This method is called before the view controller's view is about to be added to a view hierarchy and before any animations are configured for showing the view

So Sie nicht die Ansicht Controller oulets Variablen in nachschlagen zu können.

Stattdessen bewegen Sie den Code in viewDidLoad, die einmal die Ansicht Hierarchie geladen wird aufgerufen:

view​Did​Load()

This method is called after the view controller has loaded its view hierarchy into memory.

+0

Ich habe das schon gemacht, bevor ich die Frage gepostet habe, aber nichts, ich habe meine Steckdosen überprüft sie sind verbunden/ – devSA

+0

@devSA 'viewDidLoad' ist der richtige Ort, um den Code zu setzen. Wenn es dort nicht funktioniert, ist entweder die Steckdose nicht verbunden, oder es wurde verbunden, aber die Sicht wurde freigegeben. Setzen Sie den Code in 'viewDidLoad' und entfernen Sie das' weak' Schlüsselwort aus der 'IBOutlet' Deklaration. Wenn das das Problem nicht beseitigt, ist die Verbindung nicht da. – JeremyP

Verwandte Themen