Как настроить контроллер просмотра для обновления полей в представлении, только он нажимается на контроллер навигации и освобождает объекты, когда он выведен из представлений диспетчера навигации.Принудительно загружать/выгружать вид
Моя цель состоит в том, что для контроллера представления:
- Refresh дисплей только тогда, когда она помещается в стек навигации контроллера
- выпускает данные, когда он извлекается из стека навигации контроллера
- повторное использование (чтобы исключить загрузку/разгрузку xib-файлов)
Есть ли какие-либо методы делегата дляи viewWillBePopped:
?
Пример
Скажем, у меня есть три слоя просмотров:
Movies (MovieListController)
--> Movie Basic Info (MovieInfoController)
--> Movie Credits (MovieCreditsController)
Предположим, что мы имеем класс Movie
для представления каждого фильма.
Здесь я хочу иметь только три UIViewController
s, по одному экземпляру каждого в среде выполнения программы. Поэтому я могу повторно использовать то же самое MovieInfoController
для разных фильмов и аналогично MovieCreditsController
.
Однако мне бы хотелось, чтобы MovieInfoController
обновил поля своего вида (например, название, дату выпуска и т. Д.) Только в том случае, если он помещен в стек. Внедрение дисплея в viewWillAppear
заставит его обновлять поля, даже если вызывается .
Кроме того, я хочу, чтобы MovieInfoController
опубликовал его ссылку на Movie
, когда он выскочил, и любой потенциально большой объект (например, изображение обложки). Реализация этой логики в viewWillDisappear
приведет к ее освобождению, когда она нажимает MovieCreditsController
на стек.
Есть ли разумный? Неужели я ошибаюсь?
Это на самом деле то, что я делаю сейчас, за исключением того, что он называет 'drainFieldsInfo' вместо' setMovie: nil'. Я надеялся на что-то лучшее. Спасибо хоть! – notnoop