2015-11-03 4 views
0

Я использую SEGUE навигацию с self.perfomSegueWithIndentifier функции с типом show segues.I заметил после каждой навигация другого вида/ViewController не удалить из RAM.What я должен сделать, чтобы решить этуУдалить вид из RAM стрижа

+0

Вы говорите, что ваш объект контроллера просмотра сохраняется даже после того, как вы отклонили контроллер вида? Если да, проверьте, есть ли некоторые циклы сохранения. – Abhinav

+0

Я думаю, что он снова и снова нажимает контроллеры представлений в свой навигационный стек, потребляющий все больше и больше баранов. Вы можете 'popToRootViewController' на вашем навигационном контроллере перед выполнением segue. – ryancrunchi

+0

да, точно. Предполагается, что у меня есть кнопки 1 - переход на второй контроллер просмотра 2 - переход к первому диспетчеру просмотра, и я хочу удалить предыдущий диспетчер представлений после навигации –

ответ

1

Программного

Допустит, у вас есть VC1 встраивания в UINavigationController на текущий VC1 становится верхним контроллер представления о навигации в стеке.

Так что, если вы собираетесь VC1 -> VC2

self.navigationController?.pushViewController(vc2, animated: true)

В этом случае VC2 становится верхний контроллер представления о навигации в стеке.

и, возвращаясь из VC2 -> VC1 (кнопки крана на VC2 выполнить это заявление)

self.navigationController?.popViewControllerAnimated(true)

В этом случае снова VC1 становится верхним контроллером представления о навигации в стеке.

Использование SEGUE

Просто используйте Show(e.g Push) и установить идентификатор для этого, как я есть pushView и вызывать

self.performSegueWithIdentifier("pushView", sender: nil) для перемещения VC1 -> VC2

и возвращаться к VC2 -> VC1

используйте то же самое self.navigationController?.popViewControllerAnimated(true)

enter image description here

+0

Вы не используете segues, я прав?i dont us 'UINavigationController'. У меня есть простые viewControllers с segue navigations –

+0

да, но теперь я также добавил пример для этого. – Buntylm

+0

И что, если я перейду к vc2 и после этого vc3, в этом случае он удалит vc1 из RAM? –

1

Это то, что вы ищете:

Кнопка включения Нажмите на View Controller 1:

self.navigationController.pushViewController(secondViewController, animated: true) 

Кнопка включения Нажмите на View Controller 2:

self.navigationController?.popViewControllerAnimated(true) 
+0

Хорошо, я попробую это –

+0

Если вы делаете segue-way, правильно выполняйте 'разматывать'. Взгляните на этот [блог] (http://spin.atomicobject.com/2014/10/25/ios-unwind-segues/). – Abhinav

+0

Пожалуйста, прочитайте мои комментарии к другому ответу, можете ли вы объяснить мне, как удалить вид из ОЗУ во время навигации –

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