У меня есть контроллер представления, который имеет программно созданную метку, как показано ниже.
class MyController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
setupUI()
}
func setupUI() {
// added an setup the view constraints.
}
}
Это работает правильно.Затем я попытался переместить все элементы пользовательского интерфейса контроллера представления в его расширение, создав расширение, как показано ниже:
private extension MyController {
var label: UILabel = {
**// tried to initialize the label like this. but getting cannot use stored property in extension error**
}()
// then tried like below
var mylabel: UILabel! {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.text = "Hello"
return label
}
func setupUI() {
// with the second option I getting nil value error.
}
}
Как программно инициализировать элементы интерфейса в расширениях viewcontroller для доступавнутренне.