Я заметил что-то довольно странное, когда я добавляю дочерний VC в иерархию представлений в IB, иерархия выглядит так
родительское представление vc
- -представление контейнера
- - - -дочернее представление vc
при добавлении вручную
родительское представление vc
- - дочернее представление vc
Следуя инструкциям Apple в их руководстве, они никогда не говорить о представлении контейнера как о части иерархии, однако в коде на практике, например, когда я пытаюсь вызвать
- (void) hideContentController: (UIViewController*) content {
[content willMoveToParentViewController:nil];
[content.view removeFromSuperview];
[content removeFromParentViewController];
}
представление контейнера все еще «загрязняет» мою иерархию представлений. Я не понимаю отношения между этим контейнером и моим ребенком VC
.
Практический пример в моем коде: я помещаю эти viewControllers
в UIStackView
, и при попытке удалить UIViewController
, который был вставлен с Embed Segue
, я остаюсь с фантомным видом. Единственный способ получить доступ к этому представлению — это IBOutlet
из раскадровки.
У кого-нибудь есть опыт обработки, замены или удаления ChildViewControllers
, добавленных с помощью IB? Или может объясните откуда такая разница и как от нее избавиться?