Как добавить контроллер представления, у которого уже есть родительский контроллер, в качестве дочернего элемента другого контроллера представления

У меня есть 3 контроллера представления.

ViewcontrollerA является потомком ViewcontrollerB.

Я хочу добавить ViewControllerB в качестве дочернего элемента ViewcontrollerC.

Внутри ViewcontrollerC.m

ViewcontrollerC.view = ViewcontrollerB.view;

[self addChildViewController:ViewcontrollerB];

[self.view addSubview:ViewcontrollerB.view];

[ViewcontrollerB didMoveToParentViewController:self];

Это дает мне эту ошибку. Тема 1: Исключение: дочерний контроллер представления: ViewcontrollerA: 0x7fee59454a60› должен иметь родительский контроллер представления: ViewcontrollerC: 0x7fee5962f670›, но фактический родитель: ViewcontrollerB: 0x7fee694510f0›


person Rhaystack    schedule 25.06.2020    source источник
comment
ViewcontrollerC.view = ViewcontrollerB.view;? Что такое ViewControllerC? Что такое self? ViewControllerD?   -  person Cy-4AH    schedule 25.06.2020
comment
Я — это ViewControllerC   -  person Rhaystack    schedule 25.06.2020


Ответы (1)


Попробуй это:

ViewcontrollerB.view.frame = self.view.bounds;
[self.view addSubview: ViewcontrollerB.view];
[self addChildViewController: ViewcontrollerB];
[ViewcontrollerB didMoveToParentViewController:self];

Вам не хватает этой строки: ViewcontrollerB.view.frame = self.view.bounds;

person pkc456    schedule 25.06.2020