Извиняюсь за большой блок 'o' текста, но я несколько новичок, пытающийся использовать UINavigationController как часть приложения, которое я пишу, и мне просто интересно, как мне следует обрабатывать добавление просматривать контроллеры для UINavigationController и когда (если вообще) я должен освободить их.
На мой взгляд, существует два возможных подхода при добавлении контроллера представления:
Иметь переменную экземпляра для каждого контроллера представления в управляющем классе. Инициализируйте его (если переменная экземпляра равна nil), прежде чем помещать его в контроллер nav. Затем освободите контроллер представления в методе dealloc управляющего класса, если он не равен nil.
Создайте контроллер представления как локальную переменную в методе и поместите его в контроллер навигации, прежде чем немедленно его освободить.
Однако я не уверен в правильности каждого из них. (У меня есть ощущение, что я должен использовать метод переменных экземпляра, но, возможно, это связано с отсутствием понимания с моей стороны.)
Копая немного глубже, я подозреваю, что моя путаница связана с тем, что я не совсем понимаю, отвечаю ли я за избавление от контроллеров представления, которые помещаются в стек контроллера навигации, или же Я избавлюсь от них сам, когда они вытолкнут из его стека контроллера представления. (например, когда пользователь нажимает кнопку «назад».)
Если это первое, то я вижу, что мне нужно использовать подход с использованием переменных экземпляра и реализовать методы UINavigationControllerDelegate в управляющем объекте, чтобы определить, когда мне следует выпускать и обнулять каждый контроллер представления и т. Д.
Наконец (для бонусных баллов в загробной жизни), как вы можете легко определить, будет ли метод увеличивать счет сохранения одного из его параметров? (Похоже, в документации нет никаких подсказок, но, возможно, я упускаю что-то очевидное.) Например, когда я использую что-то вроде ...
[[self navigationController] pushViewController:exampleVC animated:YES];
... увеличит ли это количество отсчетов на контроллере вида? (Еще раз, я чувствую, что это должно , но это примерно столько же, сколько и шоколадного пожарного в эти опасные времена и т. Д.)
Заранее спасибо.