Der folgende Code ermöglicht es mir, auf die TestView-Eigenschaft von WalkthroughView
zuzugreifen.Das Zuordnen der ViewController-Ansicht zu einer benutzerdefinierten View-Klasse zeigt die benutzerdefinierten View-Eigenschaften nicht an
class WalkthroughViewController: UIViewController{
var walkthroughView = WalkthroughView()
override func loadView() {
self.view = walkthroughView
}
override func viewDidLoad() {
super.viewDidLoad()
walkthroughView.testView.backgroundColor = .cyan
}
}
Der folgende Code erlaubt mir nicht, die Testview Eigenschaft WalkthroughView
zuzugreifen.
class WalkthroughViewController: UIViewController{
override func loadView() {
self.view = WalkthroughView()
}
override func viewDidLoad() {
super.viewDidLoad()
//cant access the .testView
self.view.testView.backgroundColor = .cyan //this doesn't compile
}
}
Wie ist das möglich? Das erste Beispiel erstellt ein Objekt von WalkThroughView
, das zu self.view zugewiesen ist. Wenn ich dieses Objekt später anrufe, kann ich seine Eigenschaften ändern. Das zweite Beispiel weist der ViewController-Ansicht die WalkthroughView()
zu. Bei dieser Vorgehensweise ist es (so weit ich weiß) nicht möglich, auf die WalkthroughView
-Eigenschaften zuzugreifen.
Warum kann der zweite Ansatz nicht auf die WalkthroughView
testView
Eigenschaft zugreifen?
Große und einfache Erklärung. Ich danke dir sehr! Aber sollte der Code nicht geändert werden, wenn var walkthroughView? – Hapeki
'If let' oder' if var', yes. Ich habe meine Antwort korrigiert. –