Скажем, у меня есть стек 3-х контроллеров. Если я назову popToRootViewController
на navigationController
, контроллер верхнего уровня получает viewWillDisappear
, но не на среднем контроллере. Что-то называется на среднем контроллере?Что происходит, когда вызывается popToRootViewController?
Обновление: Я попытался использовать dealloc за то, что мне было нужно, но выяснил, что VC освобождены от root + 1 до вершины, а не так, как вы думаете, что стек будет работать.
Средний контроллер никогда не появляется при появлении в корне, и он не может исчезнуть, когда он никогда не появляется, поэтому вы не ожидали, что эти методы будут вызваны , Вероятно, его метод 'dealloc' будет вызван после того, как он будет всплывать. – dan
Предполагается, что вызов 'viewWillDisappear' контроллера 2-го вида до того, как 3-й появится/нажат. Аналогично, если вы одновременно нажимаете несколько контроллеров представления, можно ожидать, что «средние» контроллеры не будут вызывать 'viewWillAppear' или' viewWillDisappear' до тех пор, пока навигационный стек не изменится соответствующим образом. –
Да, я понимаю, что 'viewWillDisappear' не будет вызываться, потому что nav появляется прямо сверху до корня, но я бы подумал, что он уведомит диспетчера представлений, которые они собираются вытащить из стека. – doman412