да UINavigationController
сохраняет UIViewController
в своих стеках. (фактически он сохраняет стек UINavigationItems
, который содержит некоторые данные о заголовке, backButton и т. д. и самом ViewController)
Полагаю, ваша проблема не в самом UIViewController
, а в управлении вашей памятью.
Не забудьте, например, установить свой IBOutlets на nil в viewDidUnload
методе , чтобы, когда ваше приложение получало предупреждение о памяти, и выпускало неэкранные представления (обычно это представления, присоединенные к ViewController не самый верхний viewController из UINavigationController
), ваш IBOutlets перестает указывать на объекты и представления, которые больше не существуют (возможно, из-за сбоя, поскольку ваше приложение затем пытается получить доступ к памяти, которая была освобождена с тех пор)
PS: обратите внимание, что ваш краш-журнал не является полностью символическим, самая интересная часть (та, которая соответствует вашему собственному коду в вашем приложении "Holler") по-прежнему представляется как адреса методов вместо имен методов. ... который бы очень помог вам узнать, в каком методе вашего кода действительно происходит сбой, возможно, такой метод, как viewWillAppear
или viewDidLoad