2016-02-05 3 views
1

Say Я переключение viewcontrollers вручную, как этот How to transition to a new view controller with code only using SwiftЧто происходит с корневой контроллер представления в ИО/скор

Что происходит с (корень) контроллера, когда другой ViewController доводится до фронта. Могу ли я просто восстановить его или я должен держать ссылку на него pu i на передний план?

ответ

1

Нет, вам не нужно повторно создавать экземпляр. Вы можете получить доступ ко всем текущей UIViewControllers от UINavigationController как этот

self.navigationController?.viewControllers 

это вернет [UIViewController]. Если вы хотите получить viewController, он находится в index = 0. Если вы хотите, чтобы вернуться к root вы можете позвонить

self.navigationController?.popToRootViewControllerAnimated(true) 
+0

как вы де-выделении вида регулятора,? Через 'rejectViewControllerAnimated (...)'? Будет ли это «уничтожать» контроллер представления до тех пор, пока он не будет повторно создан? – MikeG

+1

'rejectViewControllerAnimated()' используется, когда вы «presentViewControllerAnimated()» и «popViewControllerAnimated» используется для возврата одного viewController в стек диспетчеров просмотра 'UINavigationController'. Да, оба случая (увольнение/поп) де-распределяет и уничтожает viewController –

+0

Вы предполагаете, что его UIViewController встроен в контроллер навигации, что не всегда верно. –

1

Я бы добавил это как комментарий, так что у меня нет достаточного количества очков. Чтобы ответить на ваш вопрос - вам не придется беспокоиться о повторной копии предыдущего контроллера просмотра. Если вы используете метод presentViewController:animated:completion, вы можете использовать свойства presentedViewController и presentingViewController из класса UIViewController, которые задаются после перехода.

Разработчики ссылаются ниже, поможет вам решить, лучше о том, как обрабатывать переход View Controllers в зависимости от вашего случая использования -

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instp/UIViewController/presentedViewController

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