У меня есть viewController, который помещается в стек навигационным контроллером.В этом viewController у меня есть функция setupViews, которая добавляет мои элементы пользовательского интерфейса в представление и привязывает их в соответствии с bottomAnchor навигационной панели.
Пример:
func setupViews() {
view.addSubview(topBar)
topBar.anchor(top: navigationController?.navigationBar.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 1, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 55)
}
Я хочу вызвать setupViews () в viewDidLoad (), но на этом этапе навигационная панель navigationController не установлена.Поэтому я вызываю setupViews в viewDidAppear, что нежелательно, так как представления перезагружаются каждый раз, когда появляется ViewController.
Есть ли функция, в которой я могу вызывать setupViews, которая запускается только один раз, после установки навигационной панели?Я думал о создании необязательного навигационного бара с didSet и вызове setupViews, но я не уверен, решит ли это проблему.