Я программно встроил дочерний VC (DrawerViewController) в мой mainVC (HomeController), и теперь мне нужна ссылка topAnchor.
Я знаю, что могу ссылаться на отдельные ограничения с помощью IBOutlets и называть их, но я хочу научиться создавать вещи программно без раскадровки. И теперь я изо всех сил пытаюсь правильно сослаться на topAnchor моего дочернего контейнера программно для дальнейшей работы с этим var.
В качестве НПА это прекрасно сработало бы так:
@IBOutlet private var containerViewTopConstraint: NSLayoutConstraint!
Поэтому мне нужно было бы программно сослаться на мой topAnchor и назвать его в containerViewTopConstraint. Код программно встраиваемого дочернего VC:
let drawerViewController = DrawerViewController()
func addDrawer() {
addChild(drawerViewController)
view.addSubview(drawerViewController.view)
drawerViewController.didMove(toParent: self)
addDrawerConstraints()
}
func addDrawerConstraints() {
drawerViewController.view.translatesAutoresizingMaskIntoConstraints = false
drawerViewController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20).isActive = true
drawerViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
drawerViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
drawerViewController.view.heightAnchor.constraint(equalToConstant: UIScreen.main.bounds.height).isActive = true
}
override func viewDidLoad() {
super.viewDidLoad()
addDrawer()
}