Ich habe ein gutes Stück Suche hier und auf YouTube gemacht, aber mein Problem nicht anderswo repliziert gesehen. Ich werde es auf den Punkt bringen.Swift Delegation: unerwartet gefunden Null beim Entpacken ein optionaler Wert
Ich habe 2 View-Controller, die ich selbst codiert habe - nicht von XCode generiert-; TabOneController und TabTwoController
unten ist die Codierung für beide ...
import UIKit
class TabOneController: UIViewController{
private let instanceOfTabOneView = TabOneView()
var vc1Delegate: fromOneToTwo!
override func loadView() {
super.loadView()
view.addSubview(instanceOfTabOneView.buildTheVu())
view.backgroundColor = UIColor.white
runThisOnce()
}
func runThisOnce(){
vc1Delegate.passTheValue(heroNameIs: "pass this to TabTwoController")
}
}
protocol fromOneToTwo{
func passTheValue(heroNameIs: String)
}
wie für Reiter 2 ...
import UIKit
class TabTwoController: UIViewController, fromOneToTwo{
private let instanceOfTabTwoView = TabTwoView()
override func loadView() {
super.loadView()
view.addSubview(instanceOfTabTwoView.buildTheVu())
assignDelegateToSelf()
}
func assignDelegateToSelf(){
let instanceTabOne = TabOneController()
instanceTabOne.vc1Delegate = self
}
func passTheValue(heroNameIs:String){
instanceOfTabTwoView.txtFld.text = heroNameIs
}
}
Ich erhalte die folgende Fehlermeldung zur Laufzeit -das App baut erfolgreich- ...
fatal error: unexpectedly found nil while unwrapping an Optional value
auf der folo Flügel Linie ...
vc1Delegate.passTheValue(heroNameIs: "pass this to TabTwoController")
Wenn ich die obige Zeile aus kommentieren, die App baut und betreibt erfolgreich, aber natürlich die App nicht die Delegation auszuführen.
ich irgendwie verstehen, was der Compiler, mir zu sagen versucht, dass die
vc1Delegate
-I guess- instanziiert worden ist. Aber ich habe unter jedem Stein gesucht und finde nicht, wie ich das umgehen kann.
Ich würde jede Hilfe oder Anleitung schätzen. Sorry, wenn mein Code unreif erscheint, bin ich neu in Swift und programmiere generell. Vielen Dank.
Schätzen Sie Ihre Antwort. Ich werde ein Xcode-Projekt mit zwei regulären Viewcontrollern erstellen und alle UI-Steuerelemente durch Variablen ersetzen. Ich werde einen weiteren Kommentar posten, wenn UITabController das Problem war. Vielen Dank für Ihre Zeit. –