Отобразить UIViewController с помощью containerView, где пользовательский заголовок остается видимым

#ios #swift #xcode #viewcontroller

Вопрос:

Я использую методы родительского и дочернего представления. До сих пор единственный способ, которым я мог отобразить свой дочерний контроллер представления, — это вложить его в одно из моих действий контроллера предупреждений.

 func alertController() {
 let heading = UIAlertAction(title: "Heading", style: .default, handler: {(action) -> Void in let child = SceneSetupVC(); self.show(child, sender: self); print("Heading selected")
        })
        alertController.addAction(heading)

 

Я добавил дочернее представление в свой метод viewDidAppear следующим образом:

 override func viewDidAppear(_ animated: Bool) {
        alertController()
        let parent = SceneSetupParentVC()
          let child = SceneSetupVC()
          parent.view.addSubview(child.view)
          parent.addChild(child)
          child.didMove(toParent: parent)
        child.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
 

Проблема в том, что когда я выбираю действие «Заголовок» в контроллере предупреждений, появляется следующее представление, но оно полностью покрывает мой пользовательский заголовок, который даже не имеет цели его иметь. Я думаю, что это может быть способ, которым я представляю контроллер вида, используя «показать», и выполнение этого способа подталкивает представление «модально» из-за отсутствия лучшего термина, а не в пустой области, где находится мой контейнерный вид. введите описание изображения здесь

Комментарии:

1. Я не совсем уверен, чего именно вы хотите — вероятно, неудачи с моей стороны. Почему ты пытаешься поступать таким образом? Судя по вашему анимированному изображению, вы хотите (а) представить предупреждение от контроллера вида, которое (б), по-видимому, встроено в представление навигации, а затем (в) использовать действие, выбранное в предупреждении (г) ну и что? Пожалуйста, скажи мне, чего мне не хватает! То, что вы хотите, скорее всего, выполнимо, но трудно сказать, учитывая то, что вы показали.