В этом случае вызывается только deinit
- это второй (реализованный в Details View Controller
) каждый раз, когда вы нажимаете кнопку «Назад» в навигации (переход к предыдущему контроллеру представления).
Итак, почему первый deinit
(тот, что в View Controller
) не был вызван?
Это потому, что это первый контроллер представления в контроллере навигации stack . Переход ко второму контроллеру представления не означает, что предыдущий (ие) объект был освобожден и все еще существует в качестве первого элемента в стеке навигации; Например, именно поэтому метод viewDidLoad
не должен вызываться, когда вы возвращаетесь из контроллера popped view, что означает, что он не был освобожден.