2013-03-12 2 views
0

У меня есть UIViewController с двумя кнопками, пред и далее. Когда я нажимаю на эту кнопку, я повторно создаю экземпляр того же диспетчера представлений, передавая ему некоторые переменные, а затем я нажимаю его на UINavigationController без анимации.push UIViewController без UINavigationController

С помощью этого метода моя память всегда является полной причиной, насколько я знаю, она выпущена только тогда, когда я выхожу на мои контроллеры view.

Итак, мой вопрос: как я мог реализовать это поведение? Мне нужно освободить память, когда я загружаю следующий контроллер (или предыдущий)

+1

Я считаю, что вы можете использовать 'setViewControllers: Animated:', чтобы установить контроллеры представлений в стеке контроллера навигации. Это позволит вам «сбросить» старые навигационные контроллеры, которые вам больше не нужны. Документация: http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html. У меня нет кода примера, поэтому я не отправил его в качестве ответа. –

+0

Умм .. это может сработать! Я попробую, и я дам вам знать! – Janky

ответ

0

Создайте пользовательский контроллер навигации и анимируйте переходы самостоятельно.

+0

Как я могу создать пользовательский контроллер навигации? – Janky

+0

Подкласс UINavigationController и перегружает методы pushViewController с помощью собственного кода. Другой вариант, я думаю, будет «выгружать» ваши взгляды в viewDidDissappear, освобождая любую память, которую вы не хотите удерживать. –

+0

Я попытаюсь с viewDidDisappear, но в то же время, не могли бы вы предоставить мне код для перегрузки pushViewController? Причина. Я не знаю, как предотвратить сохранение всех элементов управления представлением в стеке. – Janky

Смежные вопросы