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