Внутри UIViewController есть свойство:
@property(nonatomic, readonly, retain) UINavigationController *navigationController
Я не совсем уверен, как используется это свойство ... Как я понимаю, если у вас есть контроллер навигации с именем navController и введите какой-нибудь код, напримерэто:
[navController pushViewController:nextController animated:YES];
происходит несколько вещей.Первый nextController помещается поверх стека navController.Во-вторых, navController сохраняет nextController.В-третьих, свойство readonly для nextController (navigationController) инициализируется с помощью navController.Таким образом, navController сохраняет nextController, а nextController сохраняет navController.Это приводит к тому, что если вы выпускаете navController, он не будет уничтожен, поскольку он сохраняется всеми UIViewController в его стеке.Единственный способ освободить его - вытащить все элементы из стека, а затем выпустить его.
Так все это работает, или я что-то упустил?