2012-06-12 2 views
3

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

Мне нужно отправить ребенка willMoveToParentViewController: и removeFromParentViewController в моем контейнере UIViewController «ы dealloc и viewDidUnload методы ли?

Я использую ARC

ответ

0

Это может быть поздно, но у меня была та же проблема. Я проверил с NSLog, и метод dealloc не вызывался на дочерние контроллеры.

В моем случае у меня есть родительский контроллер, имеющий дочерний контроллер, но этот родитель также является дочерним для другого супер родительского контроллера.

Итак, мое решение заключается в реализации willMoveToParentViewController и удалении там ребенка.

Но в моем случае я назвал этот метод, потому что этот родитель является дочерним элементом другого родительского контроллера.

// removing the parent from super parent controller 
[_parentViewController willMoveToParentViewController:nil]; 
[_parentViewController removeFromParentViewController]; 
[_parentViewController.view removeFromSuperview]; 
_parentViewController = nil; 

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

Смежные вопросы