Должен ли EXPLICITLY вызывать willMoveToParentViewController:(UIViewController *)parent и didMoveToParentViewController:(UIViewController *)parent?

На сессии WWDC 2012 под названием "Эволюция контроллеров представления на iOS" - (void)willMoveToParentViewController:(UIViewController *)parent а также - (void)didMoveToParentViewController:(UIViewController *)parent были упомянуты для использования в реализации пользовательского контейнера для переходов представления.

Если я не ошибаюсь, кажется, что требуется вызвать эти методы EXPLICITLY, либо до - (void)removeFromSuperview или после - (void)addSubview:(UIView *)view

Однако, когда я зарегистрировал их внутри реализаций подкласса, это показывает, что они были вызваны НЕЗАКОННО. Они были вызваны в нужных местах автоматически.

Итак, я немного растерялся, если эти методы действительно нужно вызывать явно, как указано в сеансе WWDC, или можно не следовать им и не удалять ненужные строки кода.

1 ответ

Решение

Объяснил в моей книге:

http://www.apeth.com/iOSBook/ch19.html

По сути, один из двух действительно вызывается неявно, а другой вы должны вызывать явно. Это сводит с ума; Я должен искать правила каждый раз.

Другие вопросы по тегам