Следующий код позволяет мне получить доступ к свойству testView WalkthroughView
.Назначение ViewController для пользовательского класса View не отображает пользовательские свойства вида
class WalkthroughViewController: UIViewController{
var walkthroughView = WalkthroughView()
override func loadView() {
self.view = walkthroughView
}
override func viewDidLoad() {
super.viewDidLoad()
walkthroughView.testView.backgroundColor = .cyan
}
}
Следующий код не позволяет мне получить доступ к свойству TestView из WalkthroughView
.
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
}
}
Как это возможно? В первом примере создается объект WalkThroughView
, который присваивается self.view. Вызов этого объекта позже позволяет мне изменять его свойства. Второй пример присваивает вид ViewController WalkthroughView()
, при таком подходе он (насколько мне известно) недоступен для доступа к свойствам WalkthroughView
.
Почему второй подход не позволяет мне получить доступ к объекту WalkthroughView
testView
?
Отличное и простое объяснение. Спасибо огромное! Однако не следует ли изменять код, если var walkthroughView? – Hapeki
'If let' или' if var', да. Я исправил свой ответ. –