Как перезагрузить UIView после выгрузки памяти? - PullRequest
0 голосов
/ 31 августа 2009

Мой контроллер основного представления (представляющий главное меню в моем приложении) имеет простой UIView с несколькими вложенными представлениями. Я использую шаблон проектирования модального типа и переключаюсь на несколько других контроллеров представления, прежде чем, наконец, вернуться в главное меню. Проблема в том, что в других моих контроллерах представления (не в главном меню) я часто загружаю изображения с интенсивным использованием данных и тому подобное, что иногда приводит к тому, что главное меню (которое в данный момент не отображается на экране) выгружает свой вид в ответ Память предупреждений. Проблема в том, что когда я в конечном итоге переключаюсь обратно в главное меню, экран становится черным, и все, кроме нескольких UILabels, обойдены. На данный момент, я хотел бы перезагрузить мой взгляд и начать все сначала. Но в документации говорится, что вы никогда не должны вызывать -loadView напрямую. Как я могу перезагрузить мой взгляд?

1 Ответ

6 голосов
/ 31 августа 2009

В этой ситуации проверьте свойство isViewLoaded - оно должно возвращать NO. Если представление было выгружено правильно, isViewLoaded вернет NO и вызов view на вашем контроллере представления автоматически загрузится в представление снова.

Проверьте свой код разгрузки пользовательского представления - вы должны удалить все принадлежащее вам из иерархии представлений ([[self view] removeFromSuperview]).

Если у вас нет кода выгрузки, убедитесь, что вы не чрезмерно сохраняете некоторые из ваших представлений, что приведет к проблемам при выгрузке.

...