Контроллер детского представления удаляется следующим кодом в реализации контроллера дочернего представления:
- (void)commandFinishVC
{
[ self.view removeFromSuperview];
[ self removeFromParentViewController ];
}
Контроллер дочернего представления и его представление успешно удалены, но как родитель уведомляет об этом? -viewDidDisappear не вызывается и -viewDidUnload устарел.
Из примеров, которые я могу найти, всегда предполагается, что родительский контроллер представления является инициатором события, назначающего удаляемый ребенок, но (для меня) ребенок должен быть автономным в нем логикой для завершения.
Следует ли вызывать методы удаления, используя свойство self.parentViewController и используя в контроллере родительского представления что-то вроде следующего:
- (void)commandFinishVC
{
[ childVC.view removeFromSuperview];
[ childVC removeFromParentViewController ];
}