UIStoryboardSegue embed - PullRequest
       18

UIStoryboardSegue embed

0 голосов
/ 14 мая 2018

Что именно делает переход в UIView (добавленный в качестве контейнера) в построителе интерфейса? Я пытаюсь встроить ViewController программно, потому что я хочу выбирать между двумя разными. Я предполагаю, что я правильно установил ограничивающие ограничения Контейнерного Представления, потому что, когда я добавляю дочерний контроллер представления с переходом внедрения в раскадровку, все работает нормально, но как только я встраиваю его со следующим кодом, Контроллер Представления перекрывает нижнее ограничение контейнера и это портит мой макет ..

let viewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "MyViewController")
self.containerView.addSubview(viewController.view)
self.addChildViewController(viewController)
NSLayoutConstraint.activate([
    viewController.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
    viewController.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
    viewController.view.topAnchor.constraint(equalTo: containerView.topAnchor),
    viewController.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
])

viewController.didMove(toParentViewController: self)

1 Ответ

0 голосов
/ 14 мая 2018

Благодаря @Dinesh Balasubramanian я получил следующий код, который работает:

let viewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "MyViewController")
self.containerView.addSubview(viewController.view)
self.addChildViewController(viewController)
viewController.view.frame = containerView.bounds
viewController.didMove(toParentViewController: self)
...